您的位置:首页 > 移动开发 > IOS开发

iOS学习(三十四)iOS应用程序的生命周期

2016-07-13 10:36 447 查看
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的几个核心对象来处理以下过程:

从可用Storyboard文件加载用户界面;

调用AppDelegate自定义代码来做一些初始化设置;

将App放入Main Run Loop环境中来响应和处理与用户交互产生的事件。

大多数发生状态转换时都会调用delegate对象对应的方法来响应App的状态改变。下面汇总了delegate对象的所有方法,当App状态发生转换时,你可能会使用到它们。

1.application:willFinishLaunchingWithOptions: - 这个方法是你在启动时的第一次机会来执行代码

2.application:didFinishLaunchingWithOptions: - 这个方法允许你在显示app给用户之前执行最后的初始化操作

3.applicationDidBecomeActive: - app已经切换到active状态后需要执行的操作

4.applicationWillResignActive: - app将要从前台切换到后台时需要执行的操作

5.applicationDidEnterBackground: - app已经进入后台后需要执行的操作

6.applicationWillEnterForeground: - app将要从后台切换到前台需要执行的操作,但app还不是active状态

7.applicationWillTerminate: - app将要结束时需要执行的操作

在上面方法对应的方法中键入NSLog打印。

现在启动程序看看执行的顺序:

启动程序

lifeCycle[40428:11303] willFinishLaunchingWithOptions

lifeCycle[40428:11303] didFinishLaunchingWithOptions

lifeCycle[40428:11303] applicationDidBecomeActive

按下home键

lifeCycle[40428:11303] applicationWillResignActive

lifeCycle[40428:11303] applicationDidEnterBackground

双击home键,再打开程序

lifeCycle[40428:11303] applicationWillEnterForeground

lifeCycle[40428:11303] applicationDidBecomeActive
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: