IOS 生命周期

各个程序运行状态时代理的回调:html

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      告诉代理进程启动但还没进入状态保存
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     告诉代理启动基本完成程序准备开始运行
- (void)applicationWillResignActive:(UIApplication *)application
    当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,好比来电话了
- (void)applicationDidBecomeActive:(UIApplication *)application 
     当应用程序入活动状态执行,这个恰好跟上面那个方法相反
- (void)applicationDidEnterBackground:(UIApplication *)application
    当程序被推送到后台的时候调用。因此要设置后台继续运行,则在这个函数里面设置便可
- (void)applicationWillEnterForeground:(UIApplication *)application
当程序从后台将要从新回到前台时候调用,这个恰好跟上面的那个方法相反。
- (void)applicationWillTerminate:(UIApplication *)application
当程序将要退出是被调用,一般是用来保存数据和一些退出前的清理工做。这个须要要设置UIApplicationExitsOnSuspend的键值。
- (void)applicationDidFinishLaunching:(UIApplication*)application
当程序载入后执行
ios

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

如今启动程序看看执行的顺序:函数

启动程序
lifeCycle[40428:11303] willFinishLaunchingWithOptions
lifeCycle[40428:11303] didFinishLaunchingWithOptions
lifeCycle[40428:11303] applicationDidBecomeActive性能

按下home键spa

lifeCycle[40428:11303] applicationWillResignActive
lifeCycle[40428:11303] applicationDidEnterBackground
代理

双击home键,再打开程序htm

lifeCycle[40428:11303] applicationWillEnterForeground
lifeCycle[40428:11303] applicationDidBecomeActiveblog

ViewController生命周期

视图的生命周期其实能够理解为Load-Present-Hidden(加载-展示-隐藏)三个阶段,若是从ViewController中方法中执行的顺序来看,顺序应该是这样的:生命周期

alloc -> initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc

注意viewWillUnload和viewDidUnload已经在ios6被废弃了,由于Clearing references to views is no longer necessary。

注意1.没有viewWillLoad。

注意2.viewDidLoad和viewDidUnload并非成对的。

loadView:通常状况下不用用到,除非须要重写设置View;

viewDidLoad/dealloc:视图加载完成以后的设置和视图销毁的时候调用;

viewWillAppear/viewWillDisappear:视图即将呈现和视图即将消失;

viewDidAppear/viewDidDisappear:视图展示在屏幕的时候和视图彻底消失在屏幕的时候调用,默认不作任何操做;

注意,不要在loadView中调用父类方法[super loadView],由于这会影响CPU性能。

注意2,切换先后台不会调用viewWillAppear

相关文章
相关标签/搜索