本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。
设备中的框架
表B-1描述iOS设备提供的框架,它们位于<Xcode>
/Platforms/iPhoneOS.platform/Developer/SDKs/
<iOS_SDK>
/System/Library/Frameworks
目录。路径中的<Xcode>表示Xcode的安装目录, <iOS_SDK>则表示目标SDK版本。表中标题为“最先引入”的那一列表示首次引入相关框架的的iOS系统版本。
表 B-1 设备中的框架
名称 | 最先引入 | 前缀 | 描述 |
Accelerate.framework | 4.0 | cblas | 包含加速数学和DSP函数。 请查看 加速框架参考 。 |
AddressBook.framework | 2.0 | AB | 包含直接访问用户联系人数据库的函数。请查看地址簿框架参考。 |
AddressBookUI.framework | 2.0 | AB | 包含显示系统定义的联系人挑选界面和编辑界面的类。请查看iOS地址簿UI框架参考 。 |
AssetsLibrary.framework | 4.0 | AL | 包含显示用户照片和视频的类,请查看资源库框架参考 。 |
AudioToolbox.framework | 2.0 | AU | 包含处理音频流数据以及播放或录制音频的接口。请查看音频工具箱框架参考。 |
AudioUnit.framework | 2.0 | AU | 包含加载并使用音频单元的接口。请查看音频单元框架参考. |
AVFoundation.framework | 2.2 | AV | 包含播放或录制音频的Objective-C接口。请查看AV Foundation框架参考.。 |
CFNetwork.framework | 2.0 | CF | 包含通过WiFi或者蜂窝无线访问网络的接口。请查看CFNetwork框架参考。 |
CoreAudio.framework | 2.0 | Audio | 包含Core Audio框架使用的各种数据类型。请查看Core Audio 框架参考 。 |
CoreData.framework | 3.0 | NS | 包含管理应用程序数据模型的接口。请查看Core Data 框架参考 。 |
CoreFoundation.framework | 2.0 | CF | 提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。请查看rovCore Foundation框架参考。 |
CoreGraphics.framework | 2.0 | CG | 包含Quartz 2D接口。请查看Core Graphics 框架参考 。 |
CoreLocation.framework | 2.0 | CL | 包含确定用户方位信息的接口。请查看Core Location 框架参考。 |
CoreMedia.framework | 4.0 | CM | 包含操作音频和视频的底层例程。请查看Core Media 框架参考。 |
CoreMotion.framework | 4.0 | CM | 包含访问加速度计以及陀螺仪的数据的接口。请查看Core Motion 框架参考。 |
CoreTelephony.framework | 4.0 | CT | 包含访问电话相关的信息的例程。请查看Core Telephony 框架参考。 |
CoreText.framework | 3.2 | CT | 包含一个文本的布局渲染引擎。请查看Core Text参考集.。 |
CoreVideo.framework | 4.0 | CV | 包含操作音频和视频的底层例程。请不要直接使用该框架。 |
EventKit.framework | 4.0 | EK | 包含访问用户日历事件数据的接口。请查看Event Kit 框架参考。 |
EventKitUI.framework | 4.0 | EK | 包含显示标准系统日历界面的类。请查看Event Kit UI 框架参考。 |
ExternalAccessory.framework | 3.0 | EA | 包含与外设进行通讯的接口。请查看External Accessory 框架参考。 |
Foundation.framework | 2.0 | NS | 包含Cocoa Foundation层的类和方法。请查看Foundation 框架参考。 |
GameKit.framework | 3.0 | GK | 包含点对点连接管理接口。请查看Game Kit 框架参考。 |
iAd.framework | 4.0 | AD | 包含在应用程序中显示广告的类。请查看iAd 框架参考。 |
ImageIO.framework | 4.0 | CG | 包含读取或写入图像数据的类。请查看Image I/O 参考集。 |
IOKit.framework | 2.0 | N/A | 包含设备所使用的接口。请不要直接使用此框架。 |
MapKit.framework | 3.0 | MK | 包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。请查看Map Kit框架参考。 |
MediaPlayer.framework | 2.0 | MP | 包含显示全屏视频的接口。请查看Media Player 框架参考。 |
MessageUI.framework | 3.0 | MF | 包含撰写和排队发送电子邮件信息的界面。请查看Message UI 框架参考。 |
MobileCoreServices.framework | 3.0 | UT | 定义系统支持的统一类型标识符(UTIs)。 |
OpenAL.framework | 2.0 | AL | 包含OpenAL接口。OpenAL是一个跨平台的方位音频库。如需进一步了解,请访问http://www.openal.org。 |
OpenGLES.framework | 2.0 | EAGL | 包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。请查看OpenGL ES 框架参考。 |
QuartzCore.framework | 2.0 | CA | 包含Core Animation接口。请查看Quartz Core 框架参考。 |
QuickLook.framework | 4.0 | QL | 包含预览文件接口。请查看Quick Look 框架参考。 |
Security.framework | 2.0 | CSSM | 包含管理证书、公钥私钥以及信任策略的接口。请查看Security框架参考。 |
StoreKit.framework | 3.0 | SK | 包含用于处理与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考。 |
SystemConfiguration.framework | 2.0 | SC | 包含用于处理设备网络配置的接口。请查看System Configuration框架参考。 |
UIKit.framework | 2.0 | UI | 包含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版本中,库的版本可能会发生改变。如果您的软件连接到某个特定的版本,而那个版本可能已经不存在于用户的系统当中,那就会出问题。