标记文本在didReceiveMemoryWarning之后不会更改

时间:2014-01-20 10:16:52

标签: ios uilabel didreceivememorywarning

我的应用效果很好但是当我模拟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信号,我会释放子视图,但是当我重新创建子视图时,我没有将控制器添加为子控制器。重新创建子视图的过程还必须包括添加其控制器

1 个答案:

答案 0 :(得分:0)

消息将按以下顺序显示:

didReceiveMemoryWarning

viewDidUnload (which can be caused by 1) - obviously only applies to View Controller Classes.

dealloc

所以在模拟之后你的IBOutlet在dealloc之前设置为nil并且你的视图将无法更新