mac framework

在Mac OS X的当前版本中,框架是“版本化”的束,因为它们不同的内在结构反映了它们为版本化动态共享库进行的配置。该结构缺乏新类型束的许多特征。

框架(framework)是一种类型的束(bundle),用于打包共享资源,例如:动态共享库、资源文件、头文件和参考文献等。这些资源的组合同时也给框架带来许多好处。举例来说,它使得动态共享库对资源的定位更加容易,也使得用户的安装和卸载操作更加方便。 

框架束具有.framework的扩展名。在束的内部,可能存有框架的多个主要版本。位于框架文件夹顶层的符号链接指向库代码和资源的最新版本。动态链接编辑器把框架安装的目录地址写入可执行框架中。在运行一个程序时,如果动态链接编辑器在这个地址无法找到一个框架,它就会到标准目录地址里寻找。系统和第三方框架常常被安装在标准目录地址里。第三方框架可能也被包含在需要使用这些框架的应用程序包里。 

框架中的可执行代码是一个动态共享库。多重、并发运行中的程序可以在这个库中共享代码,而无需它们自身的代码拷贝。不同于静态链接的共享库,一个程序中的未定义符号与其所链接的动态共享库,被延迟到该程序执行时才被绑定。当程序引用这些未定义符号时,动态链接编辑器试图在运行时解决这些未定义符号。如果一个库模块中的符号没有被程序所引用,那么该模块就不会被链接。动态共享库的安装路径被写入到所有用那些库文件来创建的可执行程序中。 

框架可以具有主要版本(或称为不兼容版本)和次要版本(或称为兼容版本)。主要版本方案提供了向后兼容性。如果框架不能兼容于同老版本库文件相链接的程序,这时它就需要被赋予一个新的主要版本。而上面所说的这些程序必须与保留在框架束内部的一个早期版本相链接。次要版本方案提供了向前兼容性。一个框架的主要版本可以合并许多个次要版本。一个次要版本所体现的是与最新构建的框架相链接的程序的框架兼容性。 

注意:在Mac OS X的最新版本中,框架都是“版本化”的束,它的内部目录结构缺少了许多出现在应用程序、可加载束和更新类型的束中的特性。而对于“新格式”类型束的描述

束可以包含可执行代码,和以下各种资源:

  ·图像 
  ·声音 
  ·本地化字符串 
  ·资源管理器-格式资源文件 
  ·库和框架 
  ·插件和其它可加载束 
  ·归档的用户界面定义 

Mac OS X支持两种不同的束目录布局结构,即“新格式”和“版本化”的目录布局结构。版本化束的目录布局继承自Mac OS X之前的操作系统。以下例子描述了此目录布局结构:

MyBundle.bundle/ 
     MyBundle(可执行代码)
     Resources / 
     Pretty.tiff(非本地化资源)
English.lproj/(本地化资源) 
     Stop.eps 
     MyBundle.nib
     MyBundle.st
French.lproj/(本地化资源) 
     stop.eps 
     MyBundle.nib 
     MyBundle.strings 

尽管Mac OS X的最新开发工具只创建新格式束(框架除外),但系统束例程仍能读取并操作两种格式的束。--本文来自Systemanager.net-原帖地址:http://www.systemanager.net/bbs/viewthread.php?tid=14807&fromuid=0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值