如上图所示,ios有五种不同的生命周期状态,不同的状态间有着不同的关系。
这五种状态分别是:
1.Not Running(非运行状态。 指应用没有运行或被系统终止)
2.Inactive (前台非活动状态。 指应用正在进入前台状态,但是还不能接受事件处理)
3.Active(前台活动状态。 指应用进入前台状态,能接受事件处理)
4.Background(后台状态。 指应用进入后台后,依然能够执行代码。如果有可执行的代码就会执行代码,如果没有可执行的代码或者将可执行的代码执行完毕,应用会马上 进入挂起状态)
5.Suspended(挂起状态。 指应处于挂起的应用进入一种“冷冻”的状态,不能执行代码。如果系统内存不够,应用会被终止)
这五种状态在应用的使用过程中,会依据实际的使用场景,出现对应的生命周期状态跃迁的变化,在应用生命周期状态跃迁的过程 中,iOS系统会回调应用程序的委托对象,APPDelegate类中的不同方法,同时会发出相应的通知。详情参考下图:
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并不是成对的。
具体流程可参考下图:
更加详细介绍,可参考生命周期 - 简书