zoukankan      html  css  js  c++  java
  • (三十五)控制器的生命周期循环

    控制器有两个已经废除的方法:

    viewWillUnload与viewDidUnload方法:

    /**
     *  控制器的View即将销毁的时候调用
     */
    - (void)viewWillUnload{
        [super viewWillUnload];
    }
    /**
     *  控制器的View已经销毁的时候调用
     */
    - (void)viewDidUnload{
        [super viewDidUnload];
    }


    收到内存警告的顺序:AppDelegate->UIWindow->UIViewController。

    在收到内存警告时,应该从没有显示的视图开始销毁,销毁过程中会先调用viewWillUnload,销毁视图,再调用viewDidUnload方法:


    在非ARC状态下,应该在viewDidUnload方法把所有属性进行清空,ARC与非ARC通用的写法:self.xxx = nil;相当于[self.xxx release];

    原因:

    set方法在非ARC中会写成

    - (void)setXxx:(Xxx *)xxx{
    
       if( _xxx != xxx ){
           [_xxx release];
           _xxx = [xxx retain];
       }
    
    }
    传入一个nil,对nil进行retain是无效的,只是调用了[self.xxx release],因此使用self.xxx = nil是较好的写法。

    完整的生命周期循环为:


  • 相关阅读:
    驱动
    设备编号
    makefile 中的赋值
    UART
    c 语言的复杂声明
    linux下arm汇编的常用指令解析
    linux下的arm汇编程序
    ok6410下的uboot分析与实现
    层级选择器的理解
    css外部样式的理解
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154216.html
Copyright © 2011-2022 走看看