我不打算进入哪一个被调用的时间和原因。 (已经有很多了)代码冗余...我应该在dealloc中调用viewDidUnload
既然我们不能依靠viewDidUnload
在dealloc
之前被调用,我发现自己在这些方法之间有很多重复的代码。
- (void)viewDidUnload {
[super viewDidUnload];
self.foo = nil;
self.bar = nil;
}
- (void)dealloc {
[super dealloc];
[foo release];
[bar release];
[abc release];
}
冗余代码,ick。任何人都知道更多这样做的问题?
- (void)viewDidUnload {
[super viewDidUnload];
[foo release];
foo = nil;
[bar release];
bar = nil;
}
- (void)dealloc {
[super dealloc];
[self viewDidUnload];
[abc release];
}
当然,我得[super viewDidUnload]
额外的呼叫,但我想,这是一个非问题,因为它只是做这将在dealloc
已经完成反正东西。我也换了viewDidUnload
,所以它没有使用访问器。
另外,如果你的父控制器也在做一些卸载,你应该在你的dealloc方法中调用[super dealloc],最后调用[super viewDidUnload]。我们有一些奇怪的错误是因为首先调用[super dealloc] ....(而负载方法则相反 - 在执行其他操作之前调用[super load])。 – bandejapaisa 2011-10-10 11:41:36