我发现UIImagePickerController
可以卸载您的父视图,特别是如果您调出相机,导致再次调用viewDidLoad。我知道这是因为内存不足而发生的。但是我在视图控制器中存储UIImage*
imagePickerController:didFinishPickingMediaWithInfo
。重新加载后,此数据将丢失。 (视图控制器的self
指针已更改,UIImage*
为空。)因此,在视图控制器中存储此类变量是一个坏主意吗?它们应该存储在哪里 - 在全局(单例)对象中?
由于
答案 0 :(得分:0)
这不是真正解决问题的好建议,但在这种情况下忽略内存警告会有很多帮助:
-(void)didReceiveMemoryWarning
{
// we're too important to get flushed out by our child imagepicker.
}
视图控制器中的将解决此问题。
存储您真正需要的对象的地方可能是应用程序委托,因为它不会卸载内存警告。 (任何没有响应内存警告的地方都会这样做)