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