样,任何一个 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]希望大家能把这个单词的音读对。 ObjectiveObjective-C 其实很 C 在使用 Cocoa 进行应用程序开发的时候,Objective-C 是我们首选的语言。 (当然,Cocoa 也通过官方、第三方等途径,构建了 Cocoa-Ru
by、Cocoa-Python 等编程语言上的桥接, 使无论是来自 Ruby 还是 Python 世界的开发人员能够使用 他们熟悉的语言快速上手。)不过在这里,我们还是要首推 Objective-C 作为一 个 Cocoa 程序的开发语言,原因有二: 其一、Objective-C 实际上是 C 的超集 。
Objective-C 的运行环境库(Runtime Library)完全是由 C 编写的,因此任 何一个 Objective-C 消息派发(Message Dispatching),都会被替换成 Objective-C 运行环境中的某个或某几个 C 函数的调用。 这种机制为 Objective-C 带来了高效的消息派发和对 C 代码完全原生的兼容。 其二、整个 Cocoa Framework 都是由 Objective-C/C 实现的 。 因此在开发一个 Cocoa 应用程序的时候,Objective-C 是我们不二的选择。 当我们说到“Objective-C”的时候,尽管编程模型和 C 不同,尽管语法看 似有些奇怪, 但事实我们所讨论的依然还是 C 语言。 因为 Objective-C 确实是 C, 说的简单些: Objective-C 就是拥有一个面向对象层(Object Oriented Layer)的 C。而 Objective-C 正是通过从 Smalltalk 进化而来的这种语法,实现了对这个面向对 象层的支持。因此如果您正在使用 Objective-C 开发一个 Cocoa 应用程序,同 时又希望在某些代码的某些位置插入一些 C 代码,那就请放心大胆的继续吧!