实际上,我并不太关心Mac OS X的开发。我只想做iPod Touch和iPhone的开发。不过,我已经开始学习Cocoa和Objective-C了。但是,似乎Cocoa和Cocoa Touch之间有很多差异,所以我在想我是否正在浪费时间。我应该直接跳到iPhone相关主题吗?
实际上,我并不太关心Mac OS X的开发。我只想做iPod Touch和iPhone的开发。不过,我已经开始学习Cocoa和Objective-C了。但是,似乎Cocoa和Cocoa Touch之间有很多差异,所以我在想我是否正在浪费时间。我应该直接跳到iPhone相关主题吗?
虽然有很多重叠部分,但如果你学习的目的是为了进行iPhone编程,那么请直接学习iPhone编程。
顺便一提,如果你将来有这样的愿望,学习了iPhone编程后也能更容易地学习Mac应用程序编程。
通常我会同意其他答案:直接学习你感兴趣的主题。但是在Cocoa/Cocoa Touch的情况下,你最好阅读Aaron Hillegass的Mac OS X Cocoa编程第三版。它实在太好了!
Cocoa Touch和Cocoa之间的一个区别在于内存管理。
如果你是第一次学习Objective-C(或可能是任何基于C的语言),我建议你从Cocoa Touch开始学起。
我的理由是iPhone不支持自动垃圾回收,你可能会发现先学习(更困难?当然不那么自动化)的方式更容易,然后当你转向OS X开发时,你会欣赏到OS X平台给你的捷径。
如果你最初在Leopard上学习Cocoa开发,你可能会对iPhone上似乎更原始的内存管理感到沮丧。
两者非常相似。
总之,如果你想学习为iPhone编程,请直接跳入iPhone。Mac OS X开发不是必需的,只是一种非常相似的技能集。
虽然两者有相似之处,但如果目标是iPhone开发,最好从该平台开始学习,然后再升级到Mac。在UI框架和IB能够做的方面都有更多的内容,因此您可能会习惯于一些在iPhone上不存在或以不同方式完成的系统方面。
NS基础类大致相同,但即使在那里也存在差异。
此外,请注意模拟器将编译并运行Mac代码,但这些代码在手机本身上无法编译或运行。使用文档时,请始终将其重点放在iPhone SDK部分。
我曾经遇到过和你一样的问题,尽管我最初的重点更多地放在Mac开发上,iPhone是后来才出现的。虽然我还不是一个专业的Cocoa编码人员,但事情正在迅速改善。我发现我在Mac上学到的有关Cocoa的知识在iPhone上非常有用;相比于我在Mac上第一步学习Cocoa时,学习iPhone开发肯定要快得多...
实际上,我发现这两种技能都很有用。我正在制作一个iPhone游戏,但它使用的数据集(实际的谜题)是由我为Mac开发的一个小型Cocoa应用程序创建的。您不想学习Mac开发的具体原因是什么?您的游戏不需要额外的开发/设计工具吗?
(Mac应用程序的屏幕截图:http://www.qixis.com/images/edit16-screenshot.png)