Java Developer在Mac OS上符合Objective-C

时间:2008-09-25 18:34:23

标签: java c++ objective-c cocoa macos

我在很多年前用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?

6 个答案:

答案 0 :(得分:11)

在您的问题中购买了两本书后,我推荐使用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版本中,内存管理由retain,release和autorelease方法处理。创建的对象的保留计数为1.保留递增的计数,释放递减计数,并自动释放对象稍微复杂一些。再一次,Cocoa编程书很好地解释了它。垃圾收集是一个选项,如果它已打开,则retain,release和autorelease方法不执行任何操作。但是,如果您正在编写要由其他人使用的库或框架,则应对其进行编程,就像关闭垃圾收集一样。这样,无论是否打开垃圾收集,应用程序都可以使用它。

对于网络资源,http://cocoadevcentral.com/是一个很棒的网站,有初学者教程。 http://www.cocoadev.com/的CocoaDev Wiki包含许多主题的详细信息,您通常可以在cocoa-dev邮件列表中找到一些有用的信息和人员http://lists.apple.com/mailman/listinfo/cocoa-dev

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

答案 1 :(得分:1)

为Mac OS X获取Cocoa编程。您的大多数问题都将通过该书回答。您也可以开始阅读Become an XCoderCocoa Dev Central

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

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

答案 2 :(得分:0)

另一个选择是jaiPhon,它允许你编写在构建时被翻译成iPhone的java应用程序。

我不知道它是否有用,或者它是商品还是其他什么,但它仍然很有趣。

http://www.jaiphon.com/

答案 3 :(得分:0)

另请查看:

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

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

话虽如此,我还没试过。该项目似乎相当beta,而且他们的SourceForge网站上没有很多活动。

答案 4 :(得分:0)

您是否已经熟悉方括号?

从我的观点来看,这是一个brief of its rationale。 我希望这也有帮助。

答案 5 :(得分:0)

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