框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共享资源库定义应用程序可以调用的函数和方法。
iOS 提供了许多可在应用程序开发中使用的框架。要使用一个框架,请将它添加到项目,以便应用程序可以链接到它。大多数应用程序都链接到 Foundation、UIKit 和 Core Graphics 框架。根据您为应用程序选取的模板,可能也包括其他框架。如果一组核心框架无法满足应用程序的要求,您总是可以将其他框架添加到项目。
每个框架都属于 iOS 系统的一个层。每个层都建立在它的下层之上。尽可能使用较高级的框架,而非较低级的框架。较高级的框架向较低级的结构提供面向对象的抽象。
在iOS的开发中,框架结构如下图:
从图中可以看出,Foundation和UIKit是iOS开发的核心框架,因为他能满足大多数应用程序开发的需求。
Foundation 框架为所有应用程序提供基本的系统服务
您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上。Foundation 框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。它还制定了一些约定(用于取消分配等任务),使您的代码更加一致,可再用性更好。
使用 Foundation:
-
创建和管理集,如数组和字典
-
访问储存在应用程序中的图像和其他资源
-
创建和管理字符串
-
发布和观察通知
-
创建日期和时间对象
-
自动发现 IP 网络上的设备
-
操控 URL 流
-
异步执行代码
UIKit 框架提供的类,可用于创建基于触摸的用户界面
所有 iOS 应用程序都基于 UIKit。没有这个框架,就无法交付应用程序。UIKit 提供基础结构,用于在屏幕上绘图、处理事件,以及创建通用用户界面元素。UIKit 还通过管理屏幕上显示的内容,来组织复杂的应用程序。
使用 UIKit:
-
构建和管理用户界面
-
处理基于触摸和运动的事件
-
显示文本和网页内容
-
优化应用程序以实现多任务
-
创建自定用户界面元素
Core Data 框架管理应用程序的数据模型
Core Data 管理对象图。借助 Core Data,您可以创建模型对象(称为被管理的对象)。您管理那些对象之间的关系,并通过框架更改数据。Core Data 利用内建的 SQLite 技术,高效地储存和管理数据。
使用 Core Data:
-
存储对象和从储存处取回对象
-
支持基本的撤销/重做
-
自动验证属性值
-
对内存中的数据进行过滤、分组和整理
-
使用
NSFetchedResultsController
管理表格视图中的结果 -
支持基于文稿的应用程序
Core Graphics 框架帮助您创建图形
高质量的图形,是所有 iOS 应用程序的一个重要组成部分。在 iOS 中创建图形的最简易便捷方法,是将预渲染的图像与 UIKit 框架的标准视图和控制配合使用,并让 iOS 完成绘图。UIKit 还提供用于自定绘图的类,包括路径、颜色、图案、渐变、图像、文本和变换。尽可能地使用 UIKit(较高级的框架),而非 Core Graphics(较低级的框架)。
当您想要编写在 iOS 和 OS X 之间直接共享的绘图代码时,使用 Core Graphics。Core Graphics 框架也称为 Quartz,它在这两个平台上几乎相同。
使用 Core Graphics:
-
制作基于路径的绘图
-
使用边缘模糊化渲染
-
添加渐变、图像和颜色
-
使用坐标空间变换
-
创建、显示和解析 PDF 文稿
Core Animation 可让您制作高级动画和视觉效果
UIKit 提供的动画,是建立在 Core Animation 技术之上的。如果您需要超出 UIKit 功能的高级动画,可以直接使用 Core Animation。Core Animation 接口包含在 Quartz Core 框架中。借助 Core Animation,您创建不同层次的层对象,并对它们进行操控、旋转、缩放、变换等等。通过使用大家所熟悉的 Core Animation 视图式抽象,您可以创建动态用户界面,而无需使用低级的图形 API,如 OpenGL ES 等。
使用 Core Animation:
-
创建自定动画
-
给图形添加时序功能
-
支持关键帧动画
-
指定图形布局约束
-
将多层更改分组为原子更新
OpenGL ES 框架提供 2D 和 3D 绘图工具
OpenGL ES 支持基础的 2D 和 3D 绘图。Apple 实施的 OpenGL ES 标准,与设备硬件紧密协作,为全屏幕游戏类应用程序提供很高的帧速率。
使用 OpenGL ES:
-
创建 2D 和 3D 图形
-
制作更复杂的图形,如数据可视化、飞行模拟或视频游戏。
-
访问底层图形硬件
https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html#//apple_ref/doc/uid/TP40002974-CH3-SW16