Подтвердить что ты не робот

Нужен ли NSNotificationCenter removeObserver в ARC?

Увеличивает ли наблюдатель увеличение количества удержаний объекта? Если да, делает ли ARC удаление этого наблюдателя? Если нет, где я должен удалить наблюдателя?

4b9b3361

Ответ 1

Вы должны явно удалить наблюдателя, даже если вы используете ARC. Создайте метод dealloc и удалите его..

-(void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

Если вы видите метод, который вам не нужно вызывать [super dealloc]; здесь, нужен только метод без супер-dealloc.

UPDATE для Swift

Вы можете удалить наблюдателя в методе deinit, если вы пишете код быстро.

deinit {
        NSNotificationCenter.defaultCenter().removeObserver(self)
       }