Mac OS X 开发中的框架与编译要点
1. 框架概述
在 Mac OS X 系统中,/System/Library/Frameworks是苹果提供的框架存放位置,这些框架的共享库可供系统上的所有应用程序使用。该目录下有三种类型的框架:
-简单公共框架:苹果将既不是子框架也不是伞形框架的框架定义为简单框架,这类框架通常在旧版本的 Mac OS X 中使用过。例如AppKit,位于/System/Library/Frameworks/AppKit.framework,可以在 Finder 中查看。
-子框架:子框架是公开的,但有一个限制,即不能直接链接它。子框架存在于伞形框架中,要使用子框架,必须链接它所在的伞形框架。不过,子框架的 API 通过其头文件公开。
-伞形框架:伞形框架可以包含其他伞形框架和子框架。伞形框架中子框架的具体组成是一个实现细节,可能会随时间变化,但开发者无需担心这些变化,因为只需要链接伞形框架并包含其头文件即可。这种方式的一个优点是,不仅可以将定义从一个框架的头文件移动到另一个框架,在伞形框架的情况下,如果某个框架包含在伞形框架中,甚至可以将函数的定义移动到该框架。
为了更好地理解简单框架和伞形框架的区别,我们可以比较简单框架/System/Library/Frameworks/AppKit.framework和伞形框架/System/Library/Frameworks/