我有一个基于导航的应用程序。screen list 有一个包含书籍列表的UITableView。图书列表位于通过执行HTTP请求动态生成的属性NSArray中。当您单击List中的一行时,您将导航到屏幕Details。假设此时有一个内存警告。当您回到屏幕List时,NSArray是零,因为viewDidUnload被调用了,所以List将为空。
处理这种情况的正确方法是什么?我不应该在NSArray中将viewDidUnload设置为零吗?
发布于 2011-07-31 17:58:54
通常,您将只删除IBOutlet UI元素的属性。您还可以安全地清理在-viewDidLoad中可以重新创建的任何内容。但一般来说,这种方法只用于清理和释放与视图相关的内存,而不是视图控制器。
发布于 2011-07-31 17:59:13
正确的方法不是将数据存储在UIViewController中,而是存储在管理数据的另一个对象中。
视图控制器充当模型和屏幕之间的链接。您不应该使用它来存储数据。
发布于 2011-07-31 18:05:35
通常,我在()中设置了对象的NS(可变)Array。零和释放(如果对象不是自动释放的)。
如果使用uinavigationcontroller,视图就会被推送,所以当您从detail视图返回时,通常您将得到以前的数据,除非您放入视图将显示刷新。
我猜您在从http请求中释放内存时遇到了问题。
https://stackoverflow.com/questions/6891242
复制相似问题