2014-01-20 99 views
0

我的应用程序很好,但是当我模拟didReceiveMemoryWarning时发生了一些奇怪的事情。 例如,在一个视图中,我有一个UILabel,并在视图控制器中更改其文本。 但是,当我模拟didReceiveMemoryWarning时,文本更改没有在视图中更新,尽管从日志中我看到了正确的值。didReceiveMemoryWarning后标签文字没有变化

例如,在我的navController我在某个时刻:

NSLog(@"day label %@",self.dayYearController.labelData.text); 

和日志说

day label 8 mer 2014 

但在self.dayController视图中labelData还没有该字符串! 为什么? 此外,self.dayYearController子视图的drawRect:方法在发射didReceiveMemoryWarning信号后不再被调用。

[溶液]

我意识到,在navController我释放子视图如果收到一个didMemoryWarning信号,但是当我重新创建子视图我没有加在控制器作为子控制器。子画面的再创造的过程中还必须包括另外的控制器

回答

0

的消息将出现在以下顺序:

didReceiveMemoryWarning 

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

dealloc 

模拟之后让你的IBOutlet中设置为零的dealloc和你的观点之前,将无法更新