从iPhone到Mac编程

10

我已经查看了这个网站,以确保它不是重复的。如果我漏看了什么,请谅解。

我已经开发iPhone大约一年了,对于Objective-C、Xcode和Cocoa(至少是iPhone上使用的部分)我感到很舒适,但是为OS X编程似乎要求更多的涉及知识。

有哪些适合像我这样的人的免费资源呢?我看到的大部分内容都是关于学习Objective-C和Cocoa的,而我真正想要进入的领域是我不熟悉的IB(Interface Builder)部分以及在OS X上其他重要的方面,这些方面并不适用于iPhone。


1
我觉得令人不知所措的是Mac上可用的框架和API数量。iPhone感觉就像是Mac上可用内容的一个干净简化、更现代化的版本。 - Rudi
3个回答

6
虽然iPhone开发环境并不完全是Mac的子集,因为有一些改进和特定于iPhone的部分,但它几乎是这样的(而且主要是好的部分)。因此,Mac可能是从iPhone迁移最容易的平台。
在Mac上,您尤其需要了解Cocoa绑定,这是许多现代UI工作的基础,但尚未(在手机上)实现。
针对您具体的问题,一些备受尊重的免费Mac编码资源包括:
  • 由苹果运营的规范cocoa-dev邮件列表(不幸的是,该列表只能通过苹果公司令人失望的网络访问方式使用,并不时会受到不可靠的第三方努力的支持,因此最好还是通过其中一个电子邮件帐户订阅)
  • CocoaDev wiki
  • Rogue Amoeba的Mike Ash在博客中有一个异常有用的Q&A Fridays系列
  • Aaron Hillegass的高级Mac编程书籍Advanced Mac OS X Programming
  • 尽管现在苹果的文档相当不错,但在早期的“描述即将推出”的日子里,我们很多人都是从受信任的软件公司发布的开源代码中了解Mac OS X的工作原理,例如Omni的框架,您可以直接将其嵌入应用程序中,或者从中挑选代码。

(嗯,我通常不在这里发帖,所以禁止我超链接上面的引用...我能把它们放成文本吗?哦,不行!好吧,我猜只能用谷歌了。)


3
幸运的是,在桌面和移动端,Cocoa和Cocoa Touch非常相似。我建议从苹果官网下载一些初学者的示例代码。由于您已经了解Objective-C/Cocoa,应该能够很容易地跟随。如果有些部分令人困惑,您可以浏览一下苹果的指南。
相同的事情:
- 设计模式(目标/操作、代理、数据源、第一个响应者等) - Objective-C - Interface Builder 不同的事情:
- 控件只能有一个目标和操作。在iPhone上,您可以为touch up inside、touch up outside等设置一个目标/操作。而在Mac上,只有一个。 - NSWindowController用于加载xib(概念上类似于UIViewController)
编辑:总体而言,iPhone拥有更多“预构建”的UI类(UINavigationController、UITabBarController等),您可以在应用程序中使用它们使其看起来漂亮、美观(最重要的是与苹果应用程序保持一致)。

你可以,而且应该也使用NSViewController,它更像UIViewController,而不是它的窗口对应项。 - jbrennan

3
我最开始从事Mac OS开发,然后转向iPhone开发。你可能已经知道API的核心概念。我看到从iPhone转向Mac的开发人员面临的最大问题是适应Mac用户期望应用程序工作的微妙方式。例如处理Page Up和Page Down键以滚动视图(Tweetie不支持这一点真可惜)。或处理多个窗口。或多个显示器尺寸(并确保不将窗口定位到屏幕外)。对于技术编程问题,苹果自己的文档是最好的起点。对于为Mac OS设计和正确执行任务的细微差别,据我所知,没有一本书或网站拥有所有答案。大多数情况下,这来自使用获得苹果设计奖的应用程序并模仿它们的做法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接