文档介绍:介绍
请注意:本文档之前命名为 iPhone OS 编程指南。
[文章出处:
/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSP
rogrammingGuide/Introduction/]
iPhone SDK 为创建 iPhone 的本地应用程序提供必需的工具和资源。在用户的 Home 屏幕上,
iPhone 的本地应用程序表示为图标。它们和运行在 Safari 内部的 web 应用程序不同,在基
于 iPhone OS 的设备上,它们作为独立的执行程序来运行。本地应用程序可以访问 iPhone
和 iPod Touch 的所有特性,比如加速计、位置服务、和多点触摸接口,正是这些特性使设备
变得更加有趣。本地应用程序还可以将数据保存在本地的文件系统中,甚至可以通过定制
的 URL 类型来和安装在设备上的其它程序进行通讯。
为 iPhone OS 开发本地应用程序需要使用 UIKit 框架。利用该框架提供的基础设施和缺省行
为,您可以在几分钟内创建一个具有一定功能的应用程序。UIKit 框架(和系统中的其它框
架)不但提供大量的缺省行为,而且提供了一些挂钩,开发者可以通过这些挂钩来定制和扩
展它的行为。
谁应该阅读本文?
本文的目标读者是希望创建 iPhone 本地应用程序的新老 iPhone OS 开发者,目的是向您介
绍 iPhone 应用程序的架构,展示 UIKit 和其它重要系统框架中的一些关键的定制点。在介
绍这些内容的同时,本文还将提供一些有助于正确设计的指导意见。文中还指出一些为特
定主题提供建议和进行进一步讨论的其它文档。
虽然本文描述的很多框架也存在于 Mac OS X 系统中,但阅读本文并不需要熟悉 Mac OS X
及其技术。
先决条件
在开始阅读本文之前,您必须至少对下面这些 Cocoa 概念有基本的理解:
有关 Xcode 和 Interface Builder 的基本信息及其在应用程序开发中的作用。
如何定义新的 Objective-C 类。
如何管理内存包括如何创建和释放 Objective-C 对象。
委托对象在管理应用程序行为中的作用。
目标-动作范式在用户界面管理中的作用。
不熟悉 Cocoa 和 Objective-C 的开发者可以在 Cocoa 基本原理指南中得到相应的信息。
iPhone 应用程序的开发需要在运行 Mac OS X 或更高版本系统以及基于 Intel 的
Macintosh 电脑上进行,还必须下载和安装 iPhone SDK。有关如何得到 iPhone SDK 的信息,
请访问/developer/iphone/网站。
核心应用程序
所有的 iPhone 应用程序都是基于 UIKit 框架构建而成的,因此,它们在本质上具有相同的
核心架构。UIKit 负责提供运行应用程序和协调用户输入及屏幕显示所需要的关键对象。应
用程序之间不同的地方在于如何配置缺省对象,以及如何通过定制对象来添加用户界面和行
为。
虽然应用程序的界面和基本行为的定制发生在定制代码的内部,但是,还有很多定制需要
在应用程序的最高级别上进行。这些高级的定制会影响应用程序和系统、以及和设备上的
其它程序之间的交互方式,因此,理解何时需要定制、何时缺省行为就已经足够是很重要的。
本章将概要介绍核心应用程序架构和高级别的定制点,帮助您确定什么时候应该定制,什
么时候应该使用缺省的行为。
核心应用程序架构
从应用程序启动到退出的过程中,UIKit 框架负责管理大部分关键的基础设施。iPhone 应用
程序不断地从系统接收事件,而且必须响应那些事件。接收事件是 UIApplication 对象的工
作,但是,响应事件则需要您的定制代码来处理。为了理解事件响应需要在哪里进行,我们
有必要对 iPhone 应用程序的整个生命周期和事件周期有一些理解。本文的下面部分将描述
这些周期,同时还对 iPhone 应用程序开发过程中使用的一些关键设计模式进行总结。
应用程序的生命周期
应用程序的生命周期是由发生在程序启动到终止期间的一序列事件构成的。在 iPhone OS
中,用户可以通过轻点 Home 屏幕上的图标来启动应用程序。在轻点图标之后的不久,系统
就会显示一个过渡图形,然后调用相应的 main 函数来启动应用程序。从这个点之后,大量
的初始化工作就会交给 UIKit,由它装载应用程序的用户界面和准备事件循环。在事件循环
过程中,UIKit 会将事件分发给您的定制对象及响应应用程