深度解析深度解析iOS应用程序的生命周期应用程序的生命周期
iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本
infrastructure给所有App来运行,而你提供自己编写的代码来定制App的外观和行为。 因此,了解iOS Infrastructure和
它们如何工作对编写App是很有帮助的。
Main函数入口
所有基于C编写的App的入口都是main函数,但iOS应用程序有点不同。不同就是你不需要为iOS应用程序而自己编写
main函数,当你使用Xcode创建工程的时候就已经提供了。除非一些特殊情况,否则你不应该修改Xcode提供的main
函数实现。示例代码如下:
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
} }
上面实例代码中有一个很重要的函数 UIApplicationMain,它主要是创建App的几个核心对象来处理以下过程:
1. 从可用Storyboard文件加载用户界面;
2. 调用AppDelegate自定义代码来做一些初始化设置;
3. 将App放入Main Run Loop环境中来响应和处理与用户交互产生的事件。
应用程序的架构
iOS应用程序都遵循Model-View-Controller的架构,Model负责存储数据和处理业务逻辑,View负责显示数据和与用户
交互,Controller是两者的中介,协调Model和View相互协作。它们的通讯规则如下:
1. Controller能够访问Model和View,Model和View不能互相访问。
2. 当View与用户交互产生事件时,使用target-action方式来处理。
3. 当View需要处理一些特殊UI逻辑或获取数据源时,通过delegate或data source方式交给Controller来处理。