首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

viewDidUnload 跟 viewWillUnload 被废弃之后的内存警告处理

2013-04-12 
viewDidUnload 和 viewWillUnload 被废弃之后的内存警告处理由于iOS6以上的UIKit不会在内存警告时自动释放

viewDidUnload 和 viewWillUnload 被废弃之后的内存警告处理
由于iOS6以上的UIKit不会在内存警告时自动释放视图,所以viewWillUnload和viewDidUnload将不再触发。
因此,在iOS6上,开发者需要负责内存警告时将不用到的视图释放。
WWDC2012的视频有提到,具体代码如下:

- (void)viewDidLoad{     self.subView.delegate = self;     [[NSNotificationCenter defaultCenter] addObserver:self];     self.viewCreatedByCode = [[UIView alloc] init];}// 自定义函数viewUnloaded,其操作与viewDidLoad对称。- (void)viewUnloaded{     self.subView.delegate = nil;     [[NSNotificationCenter defaultCenter] removeObserver:self];     self.viewCreatedByCode = nil;}- (void)didReceiveMemoryWarning {     if ([self isViewLoaded] && [self.view window] == nil) {          self.view = nil; // 需要开发者手动释放控制器的视图。          self.viewCreatedByNib = nil;  // 在xib中创建的视图也要手动清空。          [self viewUnloaded]; // 视图已被卸载,调用viewDIdLoad的反操作。     }} - (void)dealloc{     if ([self isViewLoaded]) {          [self viewUnloaded]; // 如果视图已被加载,说明viewDidLoad被调用过,所以调用viewDIdLoad的反操作。     }}

热点排行