Mac OS X中的框架究竟是什么?(*.framework文件夹)

Pet*_*uza 19 macos frameworks

好的,我基本上知道现实生活中的框架是什么.我见过一些包含一些头文件和二进制文件的框架.是吗?OS X框架是否具有特殊功能,而不仅仅是一个包含链接到应用程序的标题和库的文件夹?

Mat*_*kin 23

框架信息

来自Apple Developer Connection:框架定义:

框架是一个包(结构化目录),它包含动态共享库以及相关资源,例如nib文件,图像文件和头文件.在开发应用程序时,项目会链接到一个或多个框架.例如,iPhone应用程序项目默认链接到Foundation,UIKit和Core Graphics框架.您的代码通过应用程序编程接口(API)访问框架的功能,该接口由框架通过其头文件发布.由于库是动态共享的,因此多个应用程序可以同时访问框架代码和资源.系统根据需要将框架的代码和资源加载到内存中,并在所有应用程序之间共享资源的一个副本.

替代文字

来自框架编程指南:什么是框架?:

与静态链接库和其他类型的动态共享库相比,框架具有以下优势:

  • 框架组相关,但是分开,资源在一起.通过此分组,可以更轻松地安装,卸载和定位这些资源.
  • 框架可以包括比库更多种资源类型.例如,框架可以包含任何相关的头文件和文档.框架的多个版本可以包含在同一个包中.这使得可以向后兼容旧程序.
  • 无论有多少进程正在使用这些资源,在任何给定时间,只有一个框架的只读资源副本驻留在内存中.这种资源共享减少了系统的内存占用,有助于提高性能.

相关的SO问题

您可能想要查看问题1444543:Mac OS X上的Python与非框架构建之间的差异.


小智 5

在 Mac OS X 上,框架是一个版本化的捆绑库。正如您\xe2\x80\x99 所注意到的,某些框架非常简单,仅包含单个版本的头文件和库本身。其他框架可以有多个版本、多个库文件、子框架(在这种情况下,父框架也称为伞框架)以及资源文件(例如图像或本地化字符串)。

\n\n

更多信息请参见框架编程指南

\n