我认为学习新编程语言的最佳方法之一是深入研究源代码,看看有经验的编码人员如何编写。我发现这里的问题在Stack Overflow上有其他语言,但没有针对Objective-C。我发现的最接近的是this question about good-looking Cocoa user interfaces,但我正在思考一般代码质量,例如熟练使用习语和设计模式,以及可用的文档。另一个很好的特点是代码库足够大,需要真正的组织纪律,但足够小,初学者可以适应他/她的头脑。
您认为符合这些标准的高质量开源项目是什么?
答案 0 :(得分:20)
我发现Adium是一个精心设计和编写的Objective-C项目。它也拥有庞大的代码库。
答案 1 :(得分:20)
在CocoaDev上有一个很好的开源Mac项目列表:http://cocoadev.com/CocoaOpen
并非所有项目都仍处于活跃状态,但其中有相当多的项目仍然存在。我特别推荐:
答案 2 :(得分:4)
我认为没有任何一个地方可以学习所有的Objective-C习语和最佳实践,但是你可以随着时间的推移和实践来接受它们。 Cocoa邮件列表和博客是很好的资源。 (有几个与之相关的SO问题。)
我自己并没有潜入源代码,但Omni frameworks在Mac社区中备受尊重。
我处理的framework of my own仍然很粗糙,但除了可理解的,结构良好的代码之外,我还努力获得高质量的文档。
答案 3 :(得分:4)
Google快速搜索框 [qsb-mac - Google Code]
我认为Google快速搜索框(QSB)值得一看。恕我直言,这是一个更简洁的谷歌重写Quicksilver(注意: N. Jitkoff,QS程序员,也参与了谷歌QSB)。
答案 4 :(得分:3)
Apple在其开发者网站上有大量可下载的示例。您可以看到源代码,并且许可证是我记得的BSDish(无论如何使用它,但在没有许可证的情况下不要重新发布原始代码)。
答案 5 :(得分:2)
答案 6 :(得分:1)
这是a test app I wrote earlier today。点击右上角“获取来源”下的链接。
它很小,但它表现出良好的组织规则(单独的控制器对象,而不是塞满AppDelegate的所有内容),一个带有一个模型类(Header)的简单模型层,以及正确使用Cocoa Bindings。
答案 7 :(得分:1)
我曾经在GNUstep源上工作,他们有一个很好的一致编码风格,代码组织得很好。当然,这个项目并不算小,但考虑到你知道大多数类在你的Cocoa项目中使用它们时所做的事情,你可以很容易地放大你感兴趣的部分。一些GNUstep应用程序项目或Étoilé应用程序也可能是一个很好的起点。
答案 8 :(得分:1)
查看PSTreeGraph,这是iPad应用程序的视图控件。
答案 9 :(得分:0)
iMedia Browser ,表明支持10.4 - 10.7策略,整齐有目的地组织,并深入评论。使用ImageKit的固有问题已被大胆地解决和解决。
我渴望这种思想水平与实用性相结合。