【问题标题】:Learning Cocoa. Should I delve into Apple's documentation?学习可可。我应该深入研究 Apple 的文档吗?
【发布时间】:2009-12-28 09:17:22
【问题描述】:

我已经为 iPhone 和 Mac 构建了一些基本的应用程序,对 Cocoa 有一个大致的了解,但没有深入了解。现在我想更深入。

我刚刚在 MacDevCenter 完成了 Objective-C 文档。深入了解非常棒,但花了太多时间,特别是因为其中很多都是概念性的,而且很难构建详细的示例来利用这些概念。

现在我开始关注 Cocoa,但感觉要浏览 Cocoa 本身、KVC、Cocoa 绑定和核心数据的 250 页文档太费力了。

在这个阶段,我是不是应该选择一本关于 Cocoa 的好书(我认为 Hillegass 的书太少了),还是应该硬着头皮去阅读文档?

【问题讨论】:

  • cocoadevcentral.com 有一些很好的教程值得一读,并且很好地介绍了各种 Cocoa 主题...

标签: objective-c cocoa


【解决方案1】:

Apple 的文档通常非常出色。 API 参考至少是我读过的最好的一些(与 Java 的 API 参考一样),并且是非常有价值的资产。 我建议阅读您感兴趣的主题的概述页面,以大致了解它们的工作原理和起点,然后开始编写代码。写代码时遇到的空白可以参考文档来填写。

编写一个小项目来练习使用您想学习的 API 是一种很好的入门方式。

【讨论】:

  • 这是一个比我要发布的答案更充分的答案,即“是”
【解决方案2】:

我发现希勒加斯的书绝非稀少。事实上,我发现它是我读过的最密集的编程书籍之一。大部分章节我至少重读了 4 遍,每次都理解得更多。通过重新阅读,我理解了他包含某个段落的原因以及它如何适应更大的图景。他把所有的东西都说得很清楚,从不浪费文字。我对那本书中包含的数量感到惊讶。

你提到你想通过实践而不是阅读来学习。 Hillegass 书在每一章的末尾都有一个部分,您可以通过构建应用程序来测试您所学的知识。

在你谈到的三件事中,KVC、Cocoa Bindings 和 Core Data,前两件事涵盖得非常好。我确实发现核心数据章节要少得多。这是本书中唯一没有其他文档我无法理解的部分。 Pragmatic Programmers book 覆盖得更好。

无论如何,您的问题的答案是:视情况而定。如果您已经设法通过 Mac Dev Center 文档进行工作,那么您可能是那种从这种资源风格中轻松学习的人。如果您喜欢从书本中学习,最好的书是 Hillegass。

【讨论】:

    【解决方案3】:

    我推荐一本前段时间出版的优秀书籍:Erik M. Buck 和 Donald A. Yacktman 的《Cocoa Design Patterns》。

    【讨论】:

    • 虽然我认为这是一本很棒的书,但对于正在尝试学习 Cocoa 的人来说,这并不是什么好书。这很好地解释了为什么事情会按原样完成,但我不会向不喜欢 Cocoa 的人推荐它。
    • 在这种情况下,Hillegass 的书应该是第一本 :)
    • 我之前说过,这里需要重复一遍:“这本书是对设计模式及其在 Cocoa 项目中的实际应用的全面而权威的论述。我向任何想要从中级进阶的人推荐这本书成为 Macintosh 开发人员的专家级技能。”
    【解决方案4】:

    当然,您可以深入研究 Apple 的文档,但对我来说,我发现 Hillegass 的书是学习 Cocoa 的良好开端。我认为这本书的价值在于介绍了 Cocoa 的约定和习语。

    对于一个新的 Cocoa 开发人员来说,了解有关何时以及何时不向对象发送消息 autorelease 等问题的信息真的很清楚吗?您可以争辩说一次谷歌搜索就可以了,但您怎么知道一开始就存在这些问题呢?

    去买一本好书,翻阅并做笔记。它可以节省您的时间。对我来说,关于 Cocoa 的书是 Hillegass 的。

    【讨论】:

      【解决方案5】:

      Hillegass 的书每次他为了变得“有趣”(即每隔一段)而无法理解时都会带你去免费文档,所以除非你只想给他 40 美元,否则你会好得多不要坚持苹果免费提供给你的东西。至少你不会染上他任何可怕的 UI 设计习惯。

      您实际上不需要逐页浏览所有绑定和核心数据文档——其中一半是您可能永远不会使用的东西。知道在哪里寻找更多信息是一项比记忆 API 更有价值的技能。

      【讨论】:

      • 真的不同意你在第一段的观点。 Apple 的参考资料对于初学者来说很少。买书或使用在线教程要好得多。 Apple 的文档非常适合更有经验的开发人员。
      • 我真的认为您没有阅读过任何 Apple 的初学者教程。
      • 必须同意 gs... Hillegass 的书是一个非常平易近人的资源。我建议同时使用 Hillegass 的书和 Apple 的文档。在阅读了 Hillegass 之后,我发现 Apple 的材料更容易被情境化。
      • 我不同意 NSD 的第一段,但他的第二段是一个完全有效的答案。所以我+1。仅仅因为表达的观点不是您同意的观点,就没有理由拒绝恕我直言。至少提供了一个有效的答案,而不仅仅是一个意见。
      • 继续说下去,我强烈不同意 NSD 对 Hillegass 书中的 cmets 的看法。他是一位经验丰富的老师,这表明他的书是多么容易阅读。至于它是“稀疏的”,这本书的目的不是成为一个权威的 Cocoa 参考,而是一个伟大的介绍性文本,我认为他在这方面取得了成功。我推荐过的每一位 Mac 或 iPhone 开发人员都表示,这有助于他们理解核心概念。
      【解决方案6】:

      参考资料很棒且非常宝贵,但可能不是开始编码的最简单方法(正如人们所提到的那样)。

      我开始查看有关 iphone 开发的斯坦福讲座,然后边读边编写代码。实际上,我也曾将它们用作参考一次或两次...它们可以在 iTunes 上免费获得。

      【讨论】:

        【解决方案7】:

        这取决于您拥有的其他编程经验以及您学习的最佳方式。如果您对一般编程相当陌生,我建议您从 Hillegass 开始。如果你在 OOP 方面相当胜任但不了解 Objective-C,你可以去 Apple 的“Introduction to The Objective-C Programming Language”学习 ObjC 的语言特性。如果您使用 paradigms 而不是 OOP 进行编程,您可以在 SO 上查找一般的 OOP book recommendations(例如“Best Referece to learn OOP independent of languages?”)。我还赞同 Jonatan 的建议,即查看 iTunes 大学提供的编程视频。它们是一流大学的讲座录音,通常具有良好的学术质量(我只用“一般”来限定这一点,因为我没有看过所有这些;我看到的总是质量很好)。无论你去哪里学习 ObjC 和 Cocoa,你仍然会使用 Apple 的文档作为参考。

        随着您的学习,您可能还会发现 CocoaDev 是一个有用的辅助资源。

        【讨论】:

          【解决方案8】:

          Aaron Hillegass 的书是他为期一周的 Cocoa 开发研讨会的教材,在向初学者教授 Cocoa 的过程中经过数年的修订。 Aaron 的课程是 Apple 派出他们自己的员工的课程,现在他们不再在内部开设 Cocoa 课程了。

          【讨论】:

            【解决方案9】:

            Apple 的文档是一个很好的参考资料,但我同意它是一个巨大的资源来尝试学习 Cocoa。此外,您可能不需要预先了解整个 API - 只需根据需要学习每个部分。

            当我开始学习时,我只是选择了一个项目,坐下来开始尝试编码。当我遇到一些我不知道的东西时,我只是在谷歌上搜索了一下,这导致了一个教程和/或 Apple 文档的相关页面。

            根据我的经验,学习这种东西的最好方法就是体验。

            【讨论】:

              【解决方案10】:

              Apple 的文档通常包含优秀的 API 参考,但(在我看来)缺少等效的 topical guides。这让初学者有点难以理解(我刚刚给出的链接中的 Jacob Kaplan-Moss 指出 Python 的文档是这样的,但我认为 Apple 的文档更多)。

              我的建议是拿起 Hillegass 的书,一个项目。前几章解释了基础知识,因此请务必阅读这些内容(并进行练习!),否则您将无法深入。然后尝试实施您的项目构想;当你到达一堵墙时,查看目录和这本书的词汇表,看看是否有东西覆盖它。如果您发现了什么,请以此为借口完整地阅读并理解它。完成后,您将有更深入的了解和展示它的项目。此外,下次您尝试实现某些东西时,您将知道在 Apple 的 API 参考中搜索什么。这有助于激励我完成这本书,也许它会对你有所帮助。[1]

              [1]:(免责声明:我有一种奇怪的学习方式)

              【讨论】:

                猜你喜欢
                • 2018-01-06
                • 2017-01-08
                • 1970-01-01
                • 1970-01-01
                • 2021-07-06
                • 2010-10-08
                • 1970-01-01
                • 1970-01-01
                • 2011-11-07
                相关资源
                最近更新 更多