视图控制器获取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: |
当程序将要退出时被调用 |
当应用程序进入后台时,我们应该做些什么?
保存用户数据或状态信息,所有没写到磁盘的文件或信息,在进入后台时,最后都写到磁盘去,因为程序可能在后台被杀死。
尽可能多的释放内存,因为当内存不足时,会终止一些挂起的程序来回收内存,那些内存最大的程序首先被终止。