Documentation Archive Developer
Search

研究主要框架

框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共享资源库定义应用程序可以调用的函数和方法。

iOS 提供了许多可在应用程序开发中使用的框架。要使用一个框架,请将它添加到项目,以便应用程序可以链接到它。大多数应用程序都链接到 Foundation、UIKit 和 Core Graphics 框架。根据您为应用程序选取的模板,可能也包括其他框架。如果一组核心框架无法满足应用程序的要求,您总是可以将其他框架添加到项目。

圆点符号
查看 HelloWorld.xcodeproj 中包括的框架
  1. 在 Xcode 中打开 HelloWorld.xcodeproj 项目(如果尚未打开的话)。您早前已在教程“您的首个 iOS 应用程序”中创建了此项目。

  2. 在项目导航器中,点按“Frameworks”文件夹旁边的展示三角形,以打开此文件夹。

    您应该看到 UIKit.frameworkFoundation.frameworkCoreGraphics.framework

  3. 点按框架旁边的展示三角形,然后点按“Headers”文件夹旁边的展示三角形,可以查看框架中的头文件。

每个框架都属于 iOS 系统的一个层。每个层都建立在它的下层之上。尽可能使用较高级的框架,而非较低级的框架。较高级的框架向较低级的结构提供面向对象的抽象。

图像: ../Art/framework_layer_2x.png

iOS 应用程序基于 Foundation 和 UIKit 框架

开始编程时,您主要使用 Foundation 和 UIKit 框架,因为它们满足大多数应用程序开发的需求。

Foundation 框架为所有应用程序提供基本的系统服务

您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上。Foundation 框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。它还制定了一些约定(用于取消分配等任务),使您的代码更加一致,可再用性更好。

使用 Foundation:

  • 创建和管理集,如数组和字典

  • 访问储存在应用程序中的图像和其他资源

  • 创建和管理字符串

  • 发布和观察通知

  • 创建日期和时间对象

  • 自动发现 IP 网络上的设备

  • 操控 URL 流

  • 异步执行代码

在“您的首个 iOS 应用程序”中,您就使用了 Foundation 框架。例如,您使用了 NSString 类的实例,将用户的输入储存在 userName 中。您还使用了 Foundation 实例方法 initWithFormat:,创建问候语字符串。

UIKit 框架提供的类,可用于创建基于触摸的用户界面

所有 iOS 应用程序都基于 UIKit。没有这个框架,就无法交付应用程序。UIKit 提供基础结构,用于在屏幕上绘图、处理事件,以及创建通用用户界面元素。UIKit 还通过管理屏幕上显示的内容,来组织复杂的应用程序。

使用 UIKit:

  • 构建和管理用户界面

  • 处理基于触摸和运动的事件

  • 显示文本和网页内容

  • 优化应用程序以实现多任务

  • 创建自定用户界面元素

在“您的首个 iOS 应用程序”中,您使用了 UIKit。检查应用程序如何启动时,您看到了 UIApplicationMain 函数,它创建了 UIApplication 类(处理传入的用户事件)的一个实例。您实现了 UITextFieldDelegate 协议,以便在用户轻按“Done”键时,让键盘消失。事实上,您使用了 UIKit 中的 UITextFieldUILabelUIButton 类,创建了整个界面。

您应该了解的其他重要框架

Core Data、Core Graphics、Core Animation 和 OpenGL ES 框架,是对于应用程序开发很重要的高级技术,因此需要花时间来学习和掌握。

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 图形

  • 制作更复杂的图形,如数据可视化、飞行模拟或视频游戏。

  • 访问底层图形硬件

了解 iOS API 和 OS X API 之间的异同

如果您是 Mac 开发者,您会发现 Cocoa 和 Cocoa Touch 应用程序都基于类似的技术。它们具有共同的 API,使得从 Cocoa 迁移更简单。事实上,部分框架是相同(或几乎相同)的,例如 Foundation 和 Core Data。但是,其他框架与其 OS X 相应的框架有差异。AppKit 和 UIKit 尤其如此。因此,在将 Mac 应用程序迁移到 iOS 时,必须替换大量界面相关的类,以及与这些类相关的代码。

有关这两个平台之间异同的更多信息,请参阅《iOS Technology Overview》(iOS 技术概述)中的“Migrating from Cocoa”(从 Cocoa 迁移)。

根据需要将其他框架添加到项目

在应用程序中还可以使用许多其他框架。决定要使用一个尚未包含的框架时,请将该框架添加到项目,以便应用程序可以链接到它。

图像: ../Art/project_editor_2x.png
圆点符号
将 HelloWorld.xcodeproj 链接到其他框架
  1. 在 Xcode 中打开 HelloWorld.xcodeproj 项目(如果尚未打开的话)。

  2. 在项目导航器中,点按 HelloWorld 项目,显示项目编辑器。

  3. 在“Targets”列表中,点按 HelloWorld,将 HelloWorld 指定为目标,以便向其添加框架。

  4. 点按项目编辑器顶部的“Build Phases”。

  5. 点按展示三角形,打开“Link Binary With Libraries”部分。

  6. 点按添加按钮 (+) 添加框架。

  7. 从列表中选择框架,并点按“Add”。

有关框架的完整列表,或要了解有关框架的更多信息,请参阅《iOS Technology Overview》(iOS 技术概述)。