【问题标题】:Does it make sense to first learn Cocoa for Leopard and then Cocoa Touch for iPhone?先学 Cocoa for Leopard 然后再学 Cocoa Touch for iPhone 有意义吗?
【发布时间】: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


    【解决方案1】:

    有很多重叠,但如果你学习的目的是做 iPhone 编程,那么一定要直接学习 iPhone 编程。

    作为一个副作用,如果您有这样的愿望,您将能够更轻松地学习 Mac 应用程序编程。

    【讨论】:

    • 这种方法的另一个优点是 iPhone 编程基本上是 Mac 编程的一个子集。走另一条路需要你弄清楚发生了什么。
    • @Andy:不完全是。与 Mac Cocoa 相比,iPhone 上的一些 API 被清理了。您可以看到,由于缺乏向后兼容性问题,Apple 可以重新考虑(或至少重命名)一些事情。结果是你会在两个方面都遇到小的差异。
    【解决方案2】:

    我认为您可以使用 Cocoa-Cocoa Touch 或 Cocoa Touch-Cocoa,并且仍然可以很好地掌握为任一平台编程所需的知识。几年前我在我的 Mac 上尝试过 Cocoa 开发,但很困惑。我最终决定学习 iPhone 编程,并拿起了Beginning iPhone Development: Exploring the iPhone SDK,花了几个星期读完那本书,现在我对事情的理解好多了。真的,所需要的只是对 Mac 编程的一个很好的解释。我相当有信心现在可以轻松地学习常规的 Cocoa 编程。如果我从常规的 Cocoa 编程开始,我相当有信心能够相当轻松地学习 iPhone 编程。这两个平台之间存在差异,但有很多(非常酷的)相似之处。

    PS,如果你真的对 iPhone 开发感兴趣,我强烈推荐这本书。一分钱一分货。

    【讨论】:

      【解决方案3】:

      通常我会同意这里的其他答案:直接学习您感兴趣的主题。但是对于 Cocoa/Cocoa Touch,您最好阅读Cocoa Programming for Mac OS X, 3rd ed. by Aaron Hillegass. 这真是太棒了!

      【讨论】:

      • 这是一本好书,但在此方面它不一定比《开始 iPhone 开发》更好。
      • 我目前正在阅读这两本书,但我想我现在会专注于 iPhone。 Aaron 关于内存管理的章节让我有些困惑,他不喜欢使用在 LaMarche 书中广泛使用的属性。小事,但它们足以让我烦恼,让我专注于其中一个。
      【解决方案4】:

      有一些相似之处,但如果目标是 iPhone 开发,那么开始在该平台上学习然后升级到 Mac 会更好。在 UI 框架中还有很多事情要做,就 IB 可以做什么而言,您可能已经习惯了 iPhone 上不存在的系统的某些方面(或以不同方式完成)。

      NS 基础课程大同小异,但也有区别。

      还要注意,模拟器将编译和运行 Mac 代码,而这些代码不会在手机本身上编译或运行,使用文档时,请始终将注意力集中在 iPhone SDK 部分。

      【讨论】:

      • 您所说的“在使用文档时始终让他们专注于 iPhone SDK 部分”是什么意思?
      • 在文档窗口的左侧,您可以选择不同的文档集。您可以查看 Mac OS 集或 iPhone 集(实际上是多个版本),或者我认为所有内容。默认情况下,我认为您正在查看 OS X 集,其中包含您无法在手机上使用的元素。
      【解决方案5】:

      Cocoa Touch 和 Cocoa 的一个区别在于内存管理方面。

      如果您碰巧是第一次学习 Objective-C(或者可能是第一次学习任何基于 C 的语言),我会从 Cocoa Touch 开始。

      我的理由是 iPhone 不支持自动垃圾收集,您可能会发现首先学习(更难?当然不太自动化)方法更容易,然后当您迁移到 OS X 开发时,会欣赏操作系统提供的快捷方式X平台给你。

      如果您最初在 Leopard 上学习 Cocoa 开发,您可能会对 iPhone 中看似更原始的内存管理感到沮丧。

      不过,两者非常相似。

      底线是,如果您想学习为 iPhone 编程,请继续并跳到 iPhone。 Mac OS X 开发不是先决条件,只是非常相似的技能。

      【讨论】:

        【解决方案6】:

        我教过 Mac 开发人员和 iPhone 开发人员,我的经验是,通常最好先学习 Mac,特别是因为您可以使用 Cocoa Programming for Mac OS X 在 Cocoa 中打下坚实的基础,这仍然是学习 Mac 的最佳书籍周围的可可图案。到目前为止,我还没有找到一本好的 iPhone 书籍来教授您需要了解的关键问题,并将 Cocoa/Touch 编程与 Java、.NET 和其他系统区分开来。我最近写了几篇文章,可能对您有所帮助:

        iPhone Course Syllabus

        Review of iPhone Developer’s Cookbook

        【讨论】:

          【解决方案7】:

          我遇到了和你差不多的问题,虽然我最初的重点更多是在 Mac 开发上,但后来 iPhone 出现了。我绝不是专家级的可可编码器,但情况正在迅速改善。我发现我在 Mac 上学到的可可知识在 iPhone 上非常方便。开始 iPhone 开发肯定比我在 Mac 上的 cocoa 的第一步要快得多......

          在实践中,我发现这两种技能都能派上用场。我正在制作一个 iPhone 游戏,但它使用的数据集(实际的谜题)是使用我为 Mac 开发的一个小型可可应用程序创建的。您不想学习 Mac 开发是否有特定的原因?您的游戏不需要额外的开发/设计工具?

          (mac应用截图:http://www.qixis.com/images/edit16-screenshot.png

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-01-18
            • 2011-08-17
            • 1970-01-01
            • 2023-03-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多