很多年前我就用 C++ 进行过开发,但现在我主要是一名 Java 软件工程师。鉴于我拥有一部 iPhone,准备下个月购买 MacBook,并且总体上对开始 Mac OS 开发(使用 Objective C)感兴趣,我想我应该提出这个问题:下一步做什么?
更具体地说,我应该选择哪些书籍,以及有人可以向我推荐哪些网络资源吗?我打算购买的一些书:
- Objective-C 2.0 编程 https://rads.stackoverflow.com/amzn/click/com/0321566157
- Mac OS X 的 Cocoa(R) 编程(第三版) https://rads.stackoverflow.com/amzn/click/com/0321503619
有人熟悉这些标题吗?最后,我非常有兴趣总结一下,一旦我踏上这段旅程,我应该准备好期待什么。作为使用 IntelliJ IDEA 进行 Java 开发的人,当我转向在 Xcode 中编写 ObjectiveC 代码时,我会注意到哪些关键差异? Mac OS 桌面开发和 iPhone 开发有什么区别?习惯了 Java 垃圾收集,我应该了解 ObjectiveC 垃圾收集/内存管理的哪些知识。有人想指出任何其他语言特定问题吗?构建 UI 怎么样?它更接近于 Swing,构建与代码交互的 Visual C++ 资源文件,还是更像一些为 guis 生成代码的 borland IDE?
购买了您问题中的两本书后,我推荐 Cocoa Programming for Mac OS X 作为学习该语言和 Cocoa 框架的快速方法,并且可能是开始在 Cocoa 中生成实际应用程序的最快方法。我强烈推荐它。 《Objective-C 2.0 编程》是一本很棒的参考书,但如果您已经了解 C,那么它所教给您的东西就没有您无法从其他书中学到的东西。然而,如果您需要 Objective-C 中所有保留关键字的列表,那么这本书就是您的最佳选择。
所有的用户界面都可以通过编程方式生成,但是您会发现使用 XCode 附带的 Interface Builder 来布局用户界面要容易得多。您最终会得到更少的代码。通过绑定,您甚至可以消除与界面布局不直接相关的代码。详细信息请参阅《Cocoa Programming for Mac OS X》一书。
我对 Java 怀念的一件大事就是集合 API。在 Cocoa 中,您只获得 NSSet、NSArray 和 NSDictionary,并且没有与 Comparable 接口类似的东西。这些类也是不可变的,但有可变版本,例如 NSMutableArray。
实际上我还没有玩过 Objective-C 2.0 中的垃圾收集。在 Objective-C 的早期版本中,内存管理是通过保留、释放和自动释放方法来处理的。创建对象时保留计数为 1。保留会增加该计数,释放会减少该计数,而自动释放对象则稍微复杂一些。 Cocoa 编程书再次对此进行了很好的解释。垃圾收集是一个选项,如果它打开,retain、release 和 autorelease 方法不会执行任何操作。但是,如果您正在编写供其他人使用的库或框架,则应该像关闭垃圾收集一样对其进行编程。这样,无论应用程序是否打开垃圾收集,都可以使用它。
至于网络资源,http://cocoadevcentral.com/ http://cocoadevcentral.com/是一个提供初学者教程的很棒的网站。 CocoaDev 维基位于http://www.cocoadev.com/ http://www.cocoadev.com/包含很多主题的详细信息,你通常可以在 cocoa-dev 邮件列表上找到一些有用的信息和人员http://lists.apple.com/mailman/listinfo/cocoa-dev http://lists.apple.com/mailman/listinfo/cocoa-dev
iPhone 的开发略有不同,细节受到 NDA 的限制。但是,如果您获得 Apple 批准访问 iPhone 开发人员中心,Apple 提供了一些有关差异的精彩视频概述,这些视频可为您提供从 Mac OS X 跳转到 iPhone OS X 编程所需的文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)