какие типы ссылок хранятся
центр уведомлений
Аргументы «наблюдатель» и «объект»?
Я считаю, что слабая ссылка, хотя это только по памяти (без каламбура).
каковы лучшие практики для
удаление наблюдателей от
Центр уведомлений?
Всегда удаляйте зарегистрированный объект из центра уведомлений до его выпуска. Метод dealloc объекта является хорошим местом для этого, если он настраивает саму регистрацию или когда вы освобождаете его, если другой объект управляет подписками на уведомления. Имейте это в виду, и вышесказанное не имеет значения.
Каковы особые проблемы для
многопоточные приложения,
особенно WRT аргумент «объект»?
NSNotificationCenter отлично работает с потоками, , но , если вы отправляете уведомление из фонового потока, объект получит его в том же потоке. Из-за этого поведения вы должны использовать другой подход, если вы обновляете пользовательский интерфейс или делаете что-то еще, что не является потокобезопасным (или отправляете уведомление из другого метода в основном потоке).
в чем различия в поведении
этого метода в GC и не-GC
среды?
Я не помню, чтобы вы слышали о чем-либо, о чем вам нужно беспокоиться, хотя я еще не использовал GC.
есть какие-либо существенные различия
(с точки зрения клиента) между
мобильные и настольные среды в
поведение этого метода?
Не то чтобы я слышал, нет. Когда вы регистрируете свой объект, вы можете выбрать для регистрации все уведомления или только уведомления от определенного объекта. Если вы интенсивно используете уведомления, последнее может быть немного быстрее, но всегда проверяйте, чтобы быть уверенным.
Также любые указатели на существующие
статьи, которые охватывают это было бы
с благодарностью Я гуглил, но
был удивлен, чтобы найти немного в глубине
обсуждение этих вопросов (хотя
возможно я не использовал правильную магию
ключевые слова).
Я думаю, что это больше, потому что NSNotificationCenter довольно прост в использовании. Если вас беспокоят определенные случаи, не бойтесь написать быстрое тестовое приложение!