Я не собираюсь вдаваться в то, что называется, когда и почему. (Есть много на это уже)Кодирование избыточности ... я должен вызвать viewDidUnload в dealloc
Поскольку мы не можем полагаться на 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
, чтобы он не использовал аксессоры.
Кроме того, вы должны называть [super dealloc] последним в вашем методе dealloc, а также с [super viewDidUnload], если ваш родительский контроллер также выполняет некоторую разгрузку. У нас возникли странные ошибки, вызванные сначала вызовом [super dealloc] ... (и наоборот для методов загрузки - вызовите [супернагрузка], прежде чем делать что-либо еще). – bandejapaisa