Iphone 我应该在何时释放dealloc中的对象?
有时在iPhone上用Objective C编写代码时,我想知道我是否应该在dealloc中发布一个对象,或者如果该视图是应用程序中一个单独的很少使用的部分,那么在ViewWill中发布有时会更好Iphone 我应该在何时释放dealloc中的对象?,iphone,objective-c,memory-management,Iphone,Objective C,Memory Management,有时在iPhone上用Objective C编写代码时,我想知道我是否应该在dealloc中发布一个对象,或者如果该视图是应用程序中一个单独的很少使用的部分,那么在ViewWill中发布有时会更好 谢谢。首先,您可能希望在视图中释放内容,并在它们离开屏幕后消失:,而不是视图将消失:在任何情况下,您可能都应该在视图中释放它,并在视图中消失:和解除锁定 在viewdidegase:中,为了节省内存,您应该在屏幕外释放不需要的任何东西。在dealloc中,您应该释放对象可能保留的所有内容。无论您是否可
谢谢。首先,您可能希望在
视图中释放内容,并在它们离开屏幕后消失:
,而不是视图将消失:
在任何情况下,您可能都应该在视图中释放它,并在视图中消失:
和解除锁定
在viewdidegase:
中,为了节省内存,您应该在屏幕外释放不需要的任何东西。在dealloc
中,您应该释放对象可能保留的所有内容。无论您是否可能在viewdidegale:
中发布它,您都希望这样做,以防您的代码通过一个奇怪的路径输入,而该路径没有调用viewdidegale:
。将来,当您在不同的环境中重用视图控制器时,或者当Apple更改了您容纳VC的集合视图控制器时,可能会发生这种情况
只要您在释放IVAR后适当地将其置零(如果您使用的是属性,则应自动执行此操作)那么过度发布也不是问题,因为如果您在两个地方都发布,那么第二个版本最终会将发布消息发送到nil。一些资源也适合在那里发布,这实际上取决于您正在做什么。关键的一点是,无论您是否可以在VCs运行时释放对象以响应内存压力或事件,您都应该确保VC可能保留的任何对象都在dealloc中释放。回答得好!谢谢