• (三十五)控制器的生命周期循环


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

    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是较好的写法。

    完整的生命周期循环为:


  • 相关阅读:
    存储器
    存储器
    存储器
    计算机组成原理目录
    锁原理
    锁原理
    并发编程
    Java 算法
    Java 数据结构
    Java数据结构
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154216.html
Copyright © 2020-2023  润新知