【发布时间】:2009-02-28 17:35:00
【问题描述】:
其实我并不太关心 Mac OS X 的开发。我只想做 iPod Touch 和 iPhone 的开发。但无论如何,我开始学习 Cocoa 和 Objective-C。但是 Cocoa 和 Cocoa Touch 之间似乎有很多不同,所以我想知道我是否真的在浪费时间。我应该直接跳入 iPhone 主题吗?
【问题讨论】:
标签: iphone objective-c cocoa cocoa-touch
其实我并不太关心 Mac OS X 的开发。我只想做 iPod Touch 和 iPhone 的开发。但无论如何,我开始学习 Cocoa 和 Objective-C。但是 Cocoa 和 Cocoa Touch 之间似乎有很多不同,所以我想知道我是否真的在浪费时间。我应该直接跳入 iPhone 主题吗?
【问题讨论】:
标签: iphone objective-c cocoa cocoa-touch
有很多重叠,但如果你学习的目的是做 iPhone 编程,那么一定要直接学习 iPhone 编程。
作为一个副作用,如果您有这样的愿望,您将能够更轻松地学习 Mac 应用程序编程。
【讨论】:
我认为您可以使用 Cocoa-Cocoa Touch 或 Cocoa Touch-Cocoa,并且仍然可以很好地掌握为任一平台编程所需的知识。几年前我在我的 Mac 上尝试过 Cocoa 开发,但很困惑。我最终决定学习 iPhone 编程,并拿起了Beginning iPhone Development: Exploring the iPhone SDK,花了几个星期读完那本书,现在我对事情的理解好多了。真的,所需要的只是对 Mac 编程的一个很好的解释。我相当有信心现在可以轻松地学习常规的 Cocoa 编程。如果我从常规的 Cocoa 编程开始,我相当有信心能够相当轻松地学习 iPhone 编程。这两个平台之间存在差异,但有很多(非常酷的)相似之处。
PS,如果你真的对 iPhone 开发感兴趣,我强烈推荐这本书。一分钱一分货。
【讨论】:
通常我会同意这里的其他答案:直接学习您感兴趣的主题。但是对于 Cocoa/Cocoa Touch,您最好阅读Cocoa Programming for Mac OS X, 3rd ed. by Aaron Hillegass. 这真是太棒了!
【讨论】:
有一些相似之处,但如果目标是 iPhone 开发,那么开始在该平台上学习然后升级到 Mac 会更好。在 UI 框架中还有很多事情要做,就 IB 可以做什么而言,您可能已经习惯了 iPhone 上不存在的系统的某些方面(或以不同方式完成)。
NS 基础课程大同小异,但也有区别。
还要注意,模拟器将编译和运行 Mac 代码,而这些代码不会在手机本身上编译或运行,使用文档时,请始终将注意力集中在 iPhone SDK 部分。
【讨论】:
Cocoa Touch 和 Cocoa 的一个区别在于内存管理方面。
如果您碰巧是第一次学习 Objective-C(或者可能是第一次学习任何基于 C 的语言),我会从 Cocoa Touch 开始。
我的理由是 iPhone 不支持自动垃圾收集,您可能会发现首先学习(更难?当然不太自动化)方法更容易,然后当您迁移到 OS X 开发时,会欣赏操作系统提供的快捷方式X平台给你。
如果您最初在 Leopard 上学习 Cocoa 开发,您可能会对 iPhone 中看似更原始的内存管理感到沮丧。
不过,两者非常相似。
底线是,如果您想学习为 iPhone 编程,请继续并跳到 iPhone。 Mac OS X 开发不是先决条件,只是非常相似的技能。
【讨论】:
我教过 Mac 开发人员和 iPhone 开发人员,我的经验是,通常最好先学习 Mac,特别是因为您可以使用 Cocoa Programming for Mac OS X 在 Cocoa 中打下坚实的基础,这仍然是学习 Mac 的最佳书籍周围的可可图案。到目前为止,我还没有找到一本好的 iPhone 书籍来教授您需要了解的关键问题,并将 Cocoa/Touch 编程与 Java、.NET 和其他系统区分开来。我最近写了几篇文章,可能对您有所帮助:
【讨论】:
我遇到了和你差不多的问题,虽然我最初的重点更多是在 Mac 开发上,但后来 iPhone 出现了。我绝不是专家级的可可编码器,但情况正在迅速改善。我发现我在 Mac 上学到的可可知识在 iPhone 上非常方便。开始 iPhone 开发肯定比我在 Mac 上的 cocoa 的第一步要快得多......
在实践中,我发现这两种技能都能派上用场。我正在制作一个 iPhone 游戏,但它使用的数据集(实际的谜题)是使用我为 Mac 开发的一个小型可可应用程序创建的。您不想学习 Mac 开发是否有特定的原因?您的游戏不需要额外的开发/设计工具?
【讨论】: