Где мы помещаем код, который был в -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
}