Где лучшее место для вызова `removeObserver: name: object:` - PullRequest
1 голос
/ 22 февраля 2011

Где лучше всего вызывать removeObserver:name:object:, поскольку метод dealloc не всегда выполняется, как упомянуто в ссылке на класс NSObject ??

1 Ответ

1 голос
/ 22 февраля 2011

Если вы имеете в виду эту заметку :

Важное замечание: Обратите внимание, что при завершении работы приложения объектам не может быть отправлено сообщение dealloc, поскольку память процесса автоматически очищается при выходе - эффективнее просто позволить операционной системе очистить ресурсов, чем для вызова всех методов управления памятью.

В нем говорится, что dealloc обычно не гарантируется, что он вызывается только при завершении приложения. Таким образом, даже если dealloc не вызывается, ресурсы, используемые вашим приложением, все равно будут очищаться ОС. Это значит, что все ваши объекты исчезнут, потому что ваше приложение больше не существует.

Таким образом, наилучшее место для удаления наблюдателя уведомлений из центра уведомлений по-прежнему находится в методе наблюдателя dealloc.

...