Cocoa Framework 简称 Cocoa,它是 Mac OS X 上的快速应用程序开发(RAD, Rapid Application Development) 框架, 一个高度面向对象的 (Object Oriented) 开发框架。无论您是资深的 Mac 开发人员,还是即将踏入 Mac 开发世界的新新 Cocoa 都是您开发应用程序的瑞士军刀、 乐高积 木, 它是您构建 Mac OS 人类, X 应用程序最强大、最高效的工具。值得一提的是,苹果公司之所以能够开发出 众多顶级
软件, 其实也正是因为有着 Cocoa 这个秘密武器。 Cocoa 是 Mac OS X 上原生支持的应用程序开发框架,苹果公司强烈推荐所有 Mac 开发人员使用。 骨灰话题: 骨灰话题:Hello World! 相信对于任何一个开发人员,Hello World!都应该是个熟悉无比的东西。那么, Cocoa 的 Hello World!程序您看得懂么? --------------------------------------------------------------------------import
int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Hello, World!"); [pool drain]; return 0; } ---------------------------------------------------------------------------Hmm... 看不明白?不再仔细看看?还是看不明白? 不论您是否看得明白, 首先, 和绝大多数您所见过的 C 程序一样, 任何一个 Cocoa 应用程序都有一个主函数: int main(int argc, const char * argv[]) 主函数是应用程序的主入口,也是一切开始和结束的地方。是的,没错!从表面 上看, 这些代码和常见的 C 程序的代码没有什么区别, 而且事实上, 它们和 C 程 序的代码的的确确没有什么区别。 接下来你该问我,那什么是 Foundation?Foundation.h 里装的又是什么?什么 是 NSAutoreleasePool?那些中括号 又是什么?...... 别急,在后续的几章里 我们会慢慢把这么多陌生的面孔熟悉起来,当然我也可以现在就大致的解释一 下: Foundation 全称 Foundation Framework,是 Cocoa 的一个子开发框架。 Foundation 里包含了 Cocoa 中最基本的一些类,它们在一个 Mac 应用程序中通
常负责对象 管理、内存管理、容器等相关数据结构的操作。Foundation.h 是 Foundation 的头文件,一旦引入了这个头文件,我们就可以在自己的程序里 使 用任何在 Foundation 里声明的类。例如在上述代码中,NSAutoreleasePool 就 是 Foundation 中声明的一个类, 它为应用程 序提供可控制的延迟对象释放的内 存管理。至于那些方括号,它们是 Objective-C 里最最基本的语法成分,一对方 括号中间的内容表示对对象(或类)进 行一次方法的调用。 如果您没有听明白, 请不要惊慌失措, 咱们在下面的几章里慢慢说。 另外, Cocoa 的国际音标是['koukou]希望大家能把这个单词的音读对。 我其实很 C 在使用 Cocoa 进行应用程序
开发的时候,Objective-C 是我们首选的语言。(当 然,Cocoa 也通过官方、第三方等途径,构建了 Cocoa-Ruby、Cocoa-Python 等 编程语言上的桥接, 使无论是来自 Ruby 还是 Python 世界的开发人员能够使用他 们熟悉的语言快速上 手。)不过在这里,我们还是要首推 Objective-C 作为一 个 Cocoa 程序的开发语言,原因有二: 其一、Objective的超集。 其一、Objective-C 实际上是 C 的超集。 Objective-C 的运行环境库(Runtime Library)完全是由 C 编写的,因此任何 一个 Objective-C 消息派发 (Message Dispatching) 都会被替换成 Objective-C , 运行环境中的某个或某几个 C 函数的调用。 这种机制为 Objective-C 带来了高效 的消 息派发和对 C 代码完全原生的兼容。 其二、 Objective实现的。 其二、整个 Cocoa Framework 都是由 Objective-C/C 实现的。 因此在开发一个 Cocoa 应用程序的时候,Objective-C 是我们不二的选择。 当我们说到“Objective-C”的时候,尽管编程模型和 C 不同,尽管语法看似有 些奇