很多年前我就用 C++ 进行过开发,但现在我主要是一名 Java 软件工程师。鉴于我拥有一部 iPhone,准备下个月购买 MacBook,并且通常对开始 Mac OS 开发(使用 Objective C)感兴趣,我想我应该把这个问题提出来:接下来是什么?

更具体地说,我应该选择哪些书籍,以及有人可以向我推荐哪些网络资源吗?我打算购买的一些书:

有人熟悉这些标题吗?最后,我非常有兴趣总结一下,一旦我踏上这段旅程,我应该准备好期待什么。作为使用 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/ 是一个提供初学者教程的很棒的网站。CocoaDev 维基位于 http://www.cocoadev.com/ 包含很多主题的详细信息,你通常可以在 cocoa-dev 邮件列表上找到一些有用的信息和人员 http://lists.apple.com/mailman/listinfo/cocoa-dev

iPhone 的开发略有不同,细节受到 NDA 的限制。但是,如果您获得 Apple 批准访问 iPhone 开发人员中心,Apple 提供了一些有关差异的精彩视频概述,这些视频可为您提供从 Mac OS X 跳转到 iPhone OS X 编程所需的文档。

其他提示

获取 Mac OS X 的 Cocoa 编程。你的大部分问题都会在那本书中得到解答。您也可以开始阅读 成为 XCoder可可开发中心.

iPhone SDK 仍处于 NDA 状态,因此除了 Apple 提供的资源之外,您无法找到任何有关它的在线资源。

Cocoa UI是基于MVC的。您可以使用 Interface Builder 设计视图,然后将其绑定到模型和控制器。Objective C 是 C 和 Smalltalk 的混合体。

另一个选择是 jaiPhon,它允许您编写在构建时翻译成 iPhone 语言的 Java 应用程序。

我不知道它是否可用,或者它是否是商业软件或其他什么,但它仍然很有趣。

http://www.jaiphon.com/

另请查看此:

http://www.xmlvm.org/overview/

它是一个试图能够将用多种源语言编写的程序交叉编译为多种目标语言的项目。最初的测试用例之一是用 Java 编写程序并在 iPhone 上运行它们。观看网站上的视频是值得的。

话虽如此,我还没有尝试过。该项目似乎还处于测试阶段,并且其 SourceForge 网站上没有太多活动。

您已经熟悉方括号了吗?

这是一个 简要说明其基本原理 从我的观点。我希望这也能有所帮助。

我认为从 IntelliJ 跳到 Xcode 时你会感觉相当赤裸裸。但这只是从工具的角度来看。带上额外的衣服(TextMate+FScript)!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top