Ответ 1
Вы должны явно удалить наблюдателя, даже если вы используете ARC
. Создайте метод dealloc
и удалите его..
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Если вы видите метод, который вам не нужно вызывать [super dealloc];
здесь, нужен только метод без супер-dealloc.
UPDATE для Swift
Вы можете удалить наблюдателя в методе deinit, если вы пишете код быстро.
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}