Обязательно отмените уведомление (наблюдателя), когда ваш объект освобожден. В документации Apple говорится: «Прежде чем объект, наблюдающий за уведомлениями, будет освобожден, он должен сообщить центру уведомлений, чтобы он прекратил отправлять ему уведомления».
Для локальных уведомлений применяется следующий код:
[[NSNotificationCenter defaultCenter] removeObserver:self];
А для наблюдателей распределенных уведомлений:
[[NSDistributedNotificationCenter defaultCenter] removeObserver:self];