本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。
设备中的框架
表B-1描述iOS设备提供的框架,它们位于<Xcode>
/Platforms/iPhoneOS.platform/Developer/SDKs/
<iOS_SDK>
/System/Library/Frameworks
目录。路径中的<Xcode>表示Xcode的安装目录, <iOS_SDK>则表示目标SDK版本。表中标题为“最先引入”的那一列表示首次引入相关框架的的iOS系统版本。
名称 |
最先引入 |
前缀 |
描述 |
---|---|---|---|
|
4.0 |
|
包含加速数学和DSP函数。 请查看 加速框架参考 。 |
|
2.0 |
|
包含直接访问用户联系人数据库的函数。请查看地址簿框架参考。 |
|
2.0 |
|
包含显示系统定义的联系人挑选界面和编辑界面的类。请查看iOS地址簿UI框架参考 。 |
|
4.0 |
|
包含显示用户照片和视频的类,请查看资源库框架参考 。 |
|
2.0 |
|
包含处理音频流数据以及播放或录制音频的接口。请查看音频工具箱框架参考。 |
|
2.0 |
|
包含加载并使用音频单元的接口。请查看音频单元框架参考. |
|
2.2 |
|
包含播放或录制音频的Objective-C接口。请查看AV Foundation框架参考.。 |
|
2.0 |
|
包含通过WiFi或者蜂窝无线访问网络的接口。请查看CFNetwork框架参考。 |
|
2.0 |
|
包含Core Audio框架使用的各种数据类型。请查看Core Audio 框架参考 。 |
|
3.0 |
|
包含管理应用程序数据模型的接口。请查看Core Data 框架参考 。 |
|
2.0 |
|
提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。请查看rovCore Foundation框架参考。 |
|
2.0 |
|
包含Quartz 2D接口。请查看Core Graphics 框架参考 。 |
|
2.0 |
|
包含确定用户方位信息的接口。请查看Core Location 框架参考。 |
|
4.0 |
|
包含操作音频和视频的底层例程。请查看Core Media 框架参考。 |
|
4.0 |
|
包含访问加速度计以及陀螺仪的数据的接口。请查看Core Motion 框架参考。 |
|
4.0 |
|
包含访问电话相关的信息的例程。请查看Core Telephony 框架参考。 |
|
3.2 |
|
包含一个文本的布局渲染引擎。请查看Core Text参考集.。 |
|
4.0 |
|
包含操作音频和视频的底层例程。请不要直接使用该框架。 |
|
4.0 |
|
包含访问用户日历事件数据的接口。请查看Event Kit 框架参考。 |
|
4.0 |
|
包含显示标准系统日历界面的类。请查看Event Kit UI 框架参考。 |
|
3.0 |
|
包含与外设进行通讯的接口。请查看External Accessory 框架参考。 |
|
2.0 |
|
包含Cocoa Foundation层的类和方法。请查看Foundation 框架参考。 |
|
3.0 |
|
包含点对点连接管理接口。请查看Game Kit 框架参考。 |
|
4.0 |
|
包含在应用程序中显示广告的类。请查看iAd 框架参考。 |
|
4.0 |
|
包含读取或写入图像数据的类。请查看Image I/O 参考集。 |
|
2.0 |
N/A |
包含设备所使用的接口。请不要直接使用此框架。 |
|
3.0 |
|
包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。请查看Map Kit框架参考。 |
|
2.0 |
|
包含显示全屏视频的接口。请查看Media Player 框架参考。 |
|
3.0 |
|
包含撰写和排队发送电子邮件信息的界面。请查看Message UI 框架参考。 |
|
3.0 |
|
定义系统支持的统一类型标识符(UTIs)。 |
|
2.0 |
|
包含OpenAL接口。OpenAL是一个跨平台的方位音频库。如需进一步了解,请访问http://www.openal.org。 |
|
2.0 |
|
包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。请查看OpenGL ES 框架参考。 |
|
2.0 |
|
包含Core Animation接口。请查看Quartz Core 框架参考。 |
|
4.0 |
|
包含预览文件接口。请查看Quick Look 框架参考。 |
|
2.0 |
|
包含管理证书、公钥私钥以及信任策略的接口。请查看Security框架参考。 |
|
3.0 |
|
包含用于处理与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考。 |
|
2.0 |
|
包含用于处理设备网络配置的接口。请查看System Configuration框架参考。 |
|
2.0 |
|
包含iOS应用程序用户界面层使用的类和方法。请查看UIKit 框架参考。 |
模拟器的框架
虽然编写代码应该面向设备框架,但是在测试的过程中,您也需要针对模拟器编译代码。设备和模拟器的框架稍有区别。模拟器将几个Mac OS X框架作为其自身实现的一部分。另外,由于系统的限制,设备框架的确切接口有可能和模拟器框架稍有不同。如果您需要这些框架的列表以及设备和模拟器框架之间的差异信息,请查看iOS 开发指南。
系统库
请注意,iOS系统可能没有将Core OS和Core Services层某些特殊的库打包成框架,而是将其作为动态库放在系统的
/usr/lib
目录。动态共享库通过
.dylib
扩展名标识,其相应的头文件位于
/usr/include
目录。
所有版本的iPhone SDK都包含一份安装在系统的动态共享库本地副本。这些副本被安装在您的开发系统,您可以从XCode工程进行链接。如果您需要查看某个版本的动态库列表,请查看<Xcode>
/Platforms/iPhoneOS.platform/Developer/SDKs/
<iOS_SDK>
/usr/lib
。在这个路径中,<Xcode>表示Xcode的安装目录,<iOS_SDK>表示您当时正在使用某个版本的SDK。举个例子,iOS 3.0 SDK的动态库位于
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib
目录,相应的头文件则位于
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include
目录。
iOS使用符号链接来指向程序库的最近版本。在链接某个动态共享库的时候,请使用符号链接而不要使用动态库特定版本链接。因为在将来的iOS版本中,库的版本可能会发生改变。如果您的软件连接到某个特定的版本,而那个版本可能已经不存在于用户的系统当中,那就会出问题。