在编写代码的时候,应该尽可能地使用高层框架,而不要使用底层框架。高层框架为底层构造提供面向对象的抽象。这些抽象可以减少需编写的代码行数,同时还对诸如socket和线程这些复杂功能进行封装,从而让编写代码变得更加容易。虽说高层框架是对底层构造进行抽象,但是它并没有把底层技术
屏蔽起来。如果高层框架没有为底层框架的某些功能提供接口,开发者可以直接使用底层框架。
一、可触摸层Cocoa Touch:上至应用可视界面,下至高级系统服务交互。
1)特性:多任务、数据保护、推送服务、本地通知、手势识别器(UIGestureRecognizer)、文件共享(UIFileSharingEnabled)、点对点服务(蓝牙)、标准系统视图控制器(相册、email、SMS等);
2)框架:AddressBookUI、EventKitUI、GameKit、iAd、MapKit、MessageUI、UIKit ;
二、媒体层Media:图形技术(Quartz Core),音频技术、视频技术(AV Foundation)。
1)框架:AssetsLibrary(资产库:相册、视频等)、AVFoundation (音
频)、Core Audio(播放录制音频:CoreAudio、
AudioToolbox(震动)、AudioUnit(处理))、CoreGraphics(绘图、
渐变、锯齿、坐标空间等)、coreText(文本)、CoreVideo(缓
存、ImageIO)、MediaPlayer(媒体播放)、OpenAL(跨平台音
频输出)、OpenGLES(绘制2D及3D)、QuartzCore(高级动
画制作)
三、核心服务层Core Services:基础系统服务。
1)特性:块对象、GCD(多任务)、In App Purchase(应用程序内购买)、Core Location(定位)、SQLite、XML;
2)框架:AddressBook(联系人)、CFNetwork(网络)、CoreData、CoreFoundation(数据管理)、CoreLocation、CoreMedia、CoreTelephony(蜂窝无线信息)、EventKit(日历事件、闹钟)、Foundation、MobileCoreServices(类型标识符)、QuickLook(查看文件)、StoreKit(内购买)、SystemConfiguration(判断网络连接情况);
四、核心操作系统层Core OS:内存管理、文件系统、操作系统任务。与硬件交互。
1)框架: Accelerate(执行数学、大数字、DSP运算)、ExternalAccessory(获取每个外设的信息并初始化一个通讯会话)、Security(管理证书、公钥、私钥、信任政策)。