澄清问题作为后续:
What exactly must I do in viewDidUnload?
When should I release objects in -(void)viewDidUnload rather than in -dealloc?
因此,假设内存不足,视图隐藏,调用VIELDDunLoad。我们做释放和零舞。稍后不需要整个视图堆栈,因此调用dealloc。因为我已经在viewdidunload中有了release和nil,所以dealloc中没有它。很完美。
但是如果没有低内存错误,VistDunLoad永远不会被调用。DEOLLC被调用,因为我没有释放和零的东西,内存泄漏。
换句话说,调用dealloc时是否会先调用viewdidunload?
实际的跟进是,如果我在VIELDDIAD中分配和设置一些东西,并且在VIELDIN加载中释放它并设置为NIL,那么我是否将其脱离DELOLC,或者在DeLoC中进行防御NIL检查,如果不为零,则释放/NIL吗?

最佳答案

两个都放。你不需要查零。零分释放什么也不做。
但是,在viewdidload中,不要释放在viewdidload中无法轻松重新创建的ivar,以防视图再次加载。
通常(没有内存警告)不会调用viewdidunload,只调用dealloc。

关于iphone - 跟进viewDidUnload与dealloc问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2844348/

10-12 14:49