Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSNotificationCenter

Опции
Развертывание Target:

На этой странице
Язык:

NSNotificationCenter

NSNotificationCenter объект (или просто, центр уведомления) обеспечивает механизм для широковещательной информации в программе. NSNotificationCenter объект является по существу таблицей отгрузки уведомления.

Объекты регистрируются в центре уведомления для получения уведомлений (NSNotification объекты) использование addObserver:selector:name:object: или addObserverForName:object:queue:usingBlock: методы. Каждый вызов этого метода указывает ряд уведомлений. Поэтому объекты могут зарегистрироваться как наблюдатели различных наборов уведомления путем вызова этих методов несколько раз.

Каждая рабочая программа Какао имеет центр уведомления по умолчанию. Вы обычно не создаете свое собственное. NSNotificationCenter объект может поставить уведомления только в единственной программе. Если Вы хотите отправить уведомление другим процессам или получить уведомления от других процессов, используйте экземпляр NSDistributedNotificationCenter.

Наследование


Соответствует


Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.0 и позже.
  • Возвращает центр уведомления процесса по умолчанию.

    Объявление

    Swift

    class func defaultCenter() -> NSNotificationCenter

    Objective C

    + (NSNotificationCenter *)defaultCenter

    Возвращаемое значение

    Центр уведомления текущего процесса по умолчанию, использующийся для системных уведомлений.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Добавляет запись в таблицу отгрузки получателя с очередью уведомления и блоком, чтобы добавить к очереди и дополнительным критериям: имя уведомления и отправитель.

    Объявление

    Swift

    func addObserverForName(_ name: String?, object obj: AnyObject?, queue queue: NSOperationQueue?, usingBlock block: (NSNotification!) -> Void) -> NSObjectProtocol

    Objective C

    - (id<NSObject>)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block

    Параметры

    name

    Имя уведомления, для которого можно зарегистрировать наблюдателя; т.е. только уведомления с этим именем используются, чтобы добавить блок к очереди работы.

    Если Вы передаете nil, центр уведомления не использует имя уведомления, чтобы решить, добавить ли блок к очереди работы.

    obj

    Объект, уведомления которого Вы хотите добавить блок к очереди работы.

    Если Вы передаете nil, центр уведомления не использует отправителя уведомления, чтобы решить, добавить ли блок к очереди работы.

    queue

    Очередь та работы, к который block должен быть добавлен.

    Если Вы передаете nil, блок выполняется синхронно на потоке регистрации.

    block

    Блок, который будет выполняться, когда получено уведомление.

    Блок копируется центром уведомления и (копия) сохраненный, пока не удалена регистрация наблюдателя.

    Блок берет один параметр:

    notification

    Уведомление.

    Возвращаемое значение

    Непрозрачный объект для действия как наблюдатель.

    Обсуждение

    Если данное уведомление инициировало больше чем один блок наблюдателя, блоки могут все быть выполнены одновременно с уважением к друг другу (но на их данной очереди или на текущем потоке).

    Следующий пример показывает, как можно зарегистрироваться для получения уведомлений изменения локали.

    • NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    • NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
    • self.localeChangeObserver = [center addObserverForName:NSCurrentLocaleDidChangeNotification object:nil
    • queue:mainQueue usingBlock:^(NSNotification *note) {
    • NSLog(@"The user's locale changed to: %@", [[NSLocale currentLocale] localeIdentifier]);
    • }];

    Чтобы не зарегистрировать наблюдения, Вы передаете объект, возвращенный этим методом к removeObserver:. Необходимо вызвать removeObserver: или removeObserver:name:object: перед любым объектом, указанным addObserverForName:object:queue:usingBlock: освобожден.

    • NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    • [center removeObserver:self.localeChangeObserver];

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.6 и позже.

  • Добавляет запись в таблицу отгрузки получателя с наблюдателем, уведомление селекторные и дополнительные критерии: имя уведомления и отправитель.

    Объявление

    Swift

    func addObserver(_ notificationObserver: AnyObject, selector notificationSelector: Selector, name notificationName: String?, object notificationSender: AnyObject?)

    Objective C

    - (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender

    Параметры

    notificationObserver

    Объект, регистрирующийся как наблюдатель. Это значение не должно быть nil.

    notificationSelector

    Селектор, указывающий сообщение получатель, отправляет notificationObserver уведомлять его относительно регистрации уведомления. Метод, указанный notificationSelector должен иметь один и только один параметр (экземпляр NSNotification).

    notificationName

    Имя уведомления, для которого можно зарегистрировать наблюдателя; т.е. только уведомления с этим именем поставлены наблюдателю.

    Если Вы передаете nil, центр уведомления не использует имя уведомления, чтобы решить, поставить ли его наблюдателю.

    notificationSender

    Объект, уведомления которого наблюдатель хотят получить; т.е. только уведомления, отправленные этим отправителем, поставлены наблюдателю.

    Если Вы передаете nil, центр уведомления не использует отправителя уведомления, чтобы решить, поставить ли его наблюдателю.

    Обсуждение

    Обязательно вызовите removeObserver:name:object: прежде notificationObserver или любой объект, указанный в addObserver:selector:name:object: освобожден.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Удаляет все записи, указывающие данного наблюдателя от таблицы отгрузки получателя.

    Объявление

    Swift

    func removeObserver(_ notificationObserver: AnyObject)

    Objective C

    - (void)removeObserver:(id)notificationObserver

    Параметры

    notificationObserver

    Наблюдатель для удаления. Не должен быть nil.

    Обсуждение

    Обязательно вызовите этот метод (или removeObserver:name:object:) прежде notificationObserver или любой объект, указанный в addObserver:selector:name:object: освобожден.

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

    Следующий пример иллюстрирует, как не зарегистрироваться someObserver для всех уведомлений, для которых это ранее зарегистрировалось. В этом безопасно выполнить dealloc метод, но не должен иначе использоваться — использование removeObserver:name:object: вместо этого.

    • [[NSNotificationCenter defaultCenter] removeObserver:someObserver];

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Удаляет соответствие записей из таблицы отгрузки получателя.

    Объявление

    Swift

    func removeObserver(_ notificationObserver: AnyObject, name notificationName: String?, object notificationSender: AnyObject?)

    Objective C

    - (void)removeObserver:(id)notificationObserver name:(NSString *)notificationName object:(id)notificationSender

    Параметры

    notificationObserver

    Наблюдатель для удаления из таблицы отгрузки. Укажите наблюдателя для удаления только записей для этого наблюдателя. Не должен быть nil, или сообщение не будет иметь никакого эффекта.

    notificationName

    Имя уведомления для удаления из таблицы отгрузки. Укажите имя уведомления для удаления только записей, указывающих это имя уведомления. Когда nil, получатель не использует имена уведомления в качестве критериев удаления.

    notificationSender

    Отправитель для удаления из таблицы отгрузки. Укажите отправителя уведомления для удаления только записей, указывающих этого отправителя. Когда nil, получатель не использует отправителей уведомления в качестве критериев удаления.

    Обсуждение

    Обязательно вызовите этот метод (или removeObserver:) перед объектом наблюдателя или любым объектом, указанным в addObserver:selector:name:object: освобожден.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – removeObserver:

  • Отправляет данное уведомление получателю.

    Объявление

    Swift

    func postNotification(_ notification: NSNotification)

    Objective C

    - (void)postNotification:(NSNotification *)notification

    Параметры

    notification

    Уведомление сообщению. Это значение не должно быть nil.

    Обсуждение

    Можно создать уведомление с NSNotification метод класса notificationWithName:object: или notificationWithName:object:userInfo:. Исключение повышено если notification nil.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Создает уведомление с именем и отправителем и отправляет его на получатель.

    Объявление

    Swift

    func postNotificationName(_ notificationName: String, object notificationSender: AnyObject?)

    Objective C

    - (void)postNotificationName:(NSString *)notificationName object:(id)notificationSender

    Параметры

    notificationName

    Имя уведомления.

    notificationSender

    Объект, отправляющий уведомление.

    Обсуждение

    Этот метод вызывает postNotificationName:object:userInfo: с a userInfo параметр nil.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Создает уведомление с именем, отправителем и информацией и отправляет его на получатель.

    Объявление

    Swift

    func postNotificationName(_ notificationName: String, object notificationSender: AnyObject?, userInfo userInfo: [NSObject : AnyObject]?)

    Objective C

    - (void)postNotificationName:(NSString *)notificationName object:(id)notificationSender userInfo:(NSDictionary *)userInfo

    Параметры

    notificationName

    Имя уведомления.

    notificationSender

    Объект, отправляющий уведомление.

    userInfo

    Информация об уведомление. Может быть nil.

    Обсуждение

    Этот метод является предпочтительным методом для регистрации уведомлений.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.