经过上述的介绍,我们已经了解了开发桌面应用程序是需要框架的,我们需要确认Mac OS X中有些什么框架,以及Mac OS X的框架安装在什么地方。
可以打开Finder工具,在【/系统/资源库/Frameworks】目录中找到安装在Mac OS X中的所有框架文件。框架都是保持在以【.framework】为结尾的文件夹中,如图2-3所示。这其中也包括最重要的框架——Cocoa。
图2-3 框架所在目录
这个目录下的所有内容都是应用程序与操作系统联系的纽带,使用好它们就能更好地利用Mac OS X 以及iOS提供的功能了。
在2.2节我们知道了Mac OS X中有许多框架。但是,作为桌面应用程序的基础框架只有两种,即Cocoa与Carbon。
为什么会有两种呢?这是有其历史原因的。下面先简单地介绍一下Mac OS系统的发展史。Macintosh产生于1984年,从那时开始,Mac OS经过不断的版本升级,发展到了Mac OS 9版本。但是,这些OS是发展于旧的构架,经常出现宕机的毛病,需要进行根本性的改造。Apple公司采取的策略是,收购了一家名为NeXT的公司,将该公司拥有的名为OPENSTEP(旧名NeXTSTEP)的OS改造成新的Mac OS系统,这就是Mac OS X系统,发布于2001年。
因此,对于Mac OS来讲,到Mac OS 9为止的版本与Mac OS X完全是不同的东西,而Cocoa 是随着Mac OS X而推出的新框架。Carbon是为了让以前运行在Mac OS 9系统上的应用程序,能运行在Mac OS X上而开发的框架。
Mac OS X刚推出的时候,使用Carbon框架的应用程序比较多,那是因为Mac OS 9时代的应用程序都是通过使用Carbon改造后运行于Mac OS X上的,而Cocoa应用程序必须从头开始开发,因此在初期几乎没有。
但是Apple公司多次申明Cocoa才是主流的框架,也经过了多次升级改良。最重要的是程序员们意识到了Cocoa压倒性的高效率。因此现在很多以Cocoa为基础开发的应用程序不断涌现,从此只要是开发新的应用程序,第一选择就是Cocoa。
应用程序中到底使用的是Carbon,还是Cocoa,Mac系统中提供了调查方法。下面将介绍如何调查应用程序中使用的框架。
在终端中可以使用otool命令来完成此项工作,例如调查Safari中使用了哪些框架时,先启动终端,然后输入如下的命令。
这样屏幕上会显示如下的内容。
这些就是Safari中使用的框架列表。而且还表明了所有框架的路径【/System/Library/Frameworks】,路径后面的即为框架的名称,不仅有Cocoa,还使用很多其他的框架。
在上面的列表中,我们可以发现,Safari中同时存在了Cocoa与Carbon。实际上在Safari中主框架为Cocoa,不足的地方由Carbon来补充。因此Cocoa与Carbon框架并非排他性的框架,关于这些在2.4节会有更详细的说明。