我的应用效果很好但是当我模拟didReceiveMemoryWarning
时会发生一些奇怪的事情。
例如,在一个视图中我有一个UILabel
,在视图控制器中我更改了它的文本。
但是,当我模拟didReceiveMemoryWarning
时,文本更改不会在视图中更新,从日志中我看到正确的值。
例如,在我的navController
我有一点:
NSLog(@"day label %@",self.dayYearController.labelData.text);
并且日志显示
day label 8 mer 2014
但是在self.dayController
的视图中,labelData没有那个字符串!
为什么?
此外,在drawRect:
信号发出后,self.dayYearController
子视图的didReceiveMemoryWarning
方法也不再被调用。
[溶液]
我意识到在navController
中,如果我收到didMemoryWarning信号,我会释放子视图,但是当我重新创建子视图时,我没有将控制器添加为子控制器。重新创建子视图的过程还必须包括添加其控制器
答案 0 :(得分:0)
消息将按以下顺序显示:
didReceiveMemoryWarning
viewDidUnload (which can be caused by 1) - obviously only applies to View Controller Classes.
dealloc
所以在模拟之后你的IBOutlet在dealloc之前设置为nil并且你的视图将无法更新