【发布时间】:2011-10-14 15:20:50
【问题描述】:
如果选择了一个按钮(未在 viewDidLoad 中创建数据),我有 3 个 NSDictionarys 的 NSArrays,我是在这两种方法中删除此内存,还是仅在其中一种方法中删除?谢谢!
【问题讨论】:
如果选择了一个按钮(未在 viewDidLoad 中创建数据),我有 3 个 NSDictionarys 的 NSArrays,我是在这两种方法中删除此内存,还是仅在其中一种方法中删除?谢谢!
【问题讨论】:
这取决于您何时需要这些数据。
dealloc 中,您应该释放所有保留的 ivars。viewDidUnload 中,您应该释放在viewDidLoad 中重新创建的所有 ivars。
viewDidLoad 中重新创建,但保留一个 NSDictionary 来存储哪些 id 被选中,哪些没有。viewWillDisappear 或viewDidDisppear 中,您可以释放任何包含在用户离开并返回视图时应重置的数据的ivars。您可能希望也可能不希望有条件地执行此操作,具体取决于用户是否因为模式而离开。didReceiveMemoryWarning 中,您希望释放任何为更快访问而保留但可以从磁盘重新加载或重新计算的数据。
didReceiveMemoryWarning,即使视图不再可见。【讨论】:
您可以使用viewDidUnload 来释放视图对象。在这种情况下,您希望在 didReceiveMemoryWarning 中发布它们,如果它们是 ivars(它们可能是;否则您将没有参考来发布它们),您还应该在 dealloc 中发布它们。
【讨论】: