知识小总结八 (VC的view属性,APP生命周期)☀️

视图控制器获取view的步骤


view是视图控制器的一个属性,因为view需要占用较大的内存,所以只有当view需要显示时,才会对其进行加载(即懒加载)。

一旦控制器的view属性被创建,viewDidLoad方法就会调用(且只调用一次),可以在该方法里对视图进行修改,或者其他数据的初始化。但是,此时view的window属性为nil,也就是说视图还没有真正的显示,所以,不应该在此方法中对视图的大小尺寸等进行修改。

总结

当视图控制器第一次使用view时,loadView总是会被调用
如果我们重写loadView,我们必须用代码设置view
如果我们没有重写loadView,视图控制器会调用默认的loadView实现方法——先尝试去nib文件加载view,如果没有,会设置为一个通用的UIView对象

应用程序的状态

APP的状态有
Not running未运行: 程序没启动。
Inactive未激活: 程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态。
Active激活: 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式。
Backgroud后台: 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态。
Suspended挂起: 程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

于APP状态相关的使用

在APPDelegate文件中,可得到各运行状态代理的回调,最常用的有
application:didFinishLaunchingWithOption: 启动基本完成程序准备开始运行
applicationWillResignActive: 当应用程序将要入非活动状态执行
applicationDidBecomeActive: 当应用程序进入活动状态执行
application:DidEnterBackground: 当程序被推送到后台的时候调用
applicationWillTerminate: 当程序将要退出时被调用

当应用程序进入后台时,我们应该做些什么?

保存用户数据或状态信息,所有没写到磁盘的文件或信息,在进入后台时,最后都写到磁盘去,因为程序可能在后台被杀死。

尽可能多的释放内存,因为当内存不足时,会终止一些挂起的程序来回收内存,那些内存最大的程序首先被终止。

推荐阅读更多精彩内容