有些情况下我的应用程序在从睡眠状态恢复时崩溃且应用程序仍处于打开状态。如果在iPhone进入睡眠状态时打开UITableViews会发生这种情况;该表正在从正在解析的XML中填充。我明白为什么会崩溃;在我的viewDidUnload方法中我发布了填充表的数组。如何处理这个我不确定;是的,我只是不能在viewDidUnload中释放它,但如果你返回主菜单它就永远不会留下内存。
任何帮助将不胜感激!
答案 0 :(得分:1)
如果有的话,viewDidUnload方法不是发布数据的正确位置。我引用Apple的文档,它比我更好地描述它:
此方法称为对应方 到viewDidLoad方法。它是 在低内存条件下调用 当视图控制器需要时 释放其视图和任何对象 与该视图相关联以释放 记忆。因为视图控制器经常 存储对视图和其他的引用 视图相关的对象,你应该使用 这种放弃所有权的方法 那些对象让内存为 他们可以回收。你应该做 这只适用于您可以使用的对象 以后可以轻松地重新创建 viewDidLoad方法或来自其他部分 你的申请。 你不应该 使用此方法发布用户数据 或任何其他不能的信息 很容易重新创建。
ViewDidUnload仅用于释放与视图相关的对象。视图控制器可以释放其视图,因为它未显示,仍然存在该控制器的实例,模型也是如此。