Где мы помещаем код, который был в -dealloc при преобразовании в ARC?
У меня есть класс с этим вызовом метода в dealloc:
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
Где я могу удалить себя из центра уведомлений после преобразования класса в ARC? Должно ли оно идти в viewDidUnload? Уведомление используется для прослушивания событий, происходящих из модального контроллера, поэтому я не могу поместить этот код в viewWillDisappear.
Ответы
Ответ 1
dealloc
остается в ARC, просто вы больше не должны называть [super dealloc]
: компилятор вставляет код для вас. И, конечно, все вызовы release
не могут быть сделаны в dealloc
(или где-либо еще).
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
// [super dealloc]; <<== Compiler inserts this for you
}