NSDistributedNotificationCenter
Класс сразу
NSDistributedNotificationCenter класс обеспечивает способ отправить уведомления объектам в других задачах. Это берет NSNotification объекты и широковещательные сообщения их к любым объектам в других задачах, зарегистрировавшихся для уведомления в значении по умолчанию их задачи, распределили центр уведомления.
NSDistributedNotificationCenter класс реализует центр уведомления, который может распределить уведомления асинхронно задачам кроме той, в которой было отправлено уведомление. Экземпляр этого класса известен как распределенный центр уведомления.
Каждая задача имеет распределенный центр уведомления значения по умолчанию, к которому Вы получаете доступ с defaultCenter метод класса. Могут быть различные типы распределенных центров уведомления. В настоящее время существует единственный тип —NSLocalNotificationCenterType. Этот тип распределенного центра уведомления обрабатывает уведомления, которые могут быть отправлены между задачами на одиночном компьютере. Для коммуникации между задачами на различных компьютерах используйте Распределенные Объекты, Программируя Темы.
Регистрация распределенного уведомления является дорогой работой. Уведомление отправляется в сервер в масштабе всей системы, распределяющий его всем задачам, имеющим объекты, зарегистрированные для распределенных уведомлений. Задержка между регистрацией уведомления и поступлением уведомления в другую задачу неограниченна. Фактически, когда слишком много уведомлений отправляются, и очередь сервера заполняется, уведомления могут быть отброшены.
Распределенные уведомления поставлены через цикл выполнения задачи. Задача должна выполнять цикл выполнения в одном из «общих» режимов, такой как NSDefaultRunLoopMode, получить распределенное уведомление. Для многопоточных приложений, работающих в OS X v10.3 и позже, распределенные уведомления всегда поставляются основному потоку. Для многопоточных приложений, работающих в OS X v10.2.8 и ранее, уведомления поставлены потоку, сначала использовавшему распределенные уведомления API, который в большинстве случаев является основным потоком.
Наследование
-
NSObject -
NSNotificationCenter -
NSDistributedNotificationCenter
-
NSObject -
NSNotificationCenter -
NSDistributedNotificationCenter
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращается значение по умолчанию распределило центр уведомления, представляя локальный центр уведомления компьютера.
Объявление
Swift
class func defaultCenter() -> NSDistributedNotificationCenterObjective C
+ (NSDistributedNotificationCenter *)defaultCenterВозвращаемое значение
Значение по умолчанию распределило центр уведомления компьютера.
Обсуждение
Это вызовы метода
notificationCenterForType:с параметромNSLocalNotificationCenterType.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает распределенный центр уведомления определенного типа центра уведомления.
Объявление
Swift
class func notificationCenterForType(_notificationCenterType: String) -> NSDistributedNotificationCenterObjective C
+ (NSDistributedNotificationCenter *)notificationCenterForType:(NSString *)notificationCenterTypeПараметры
notificationCenterTypeТип центра уведомления, запрашиваемый о.
Возвращаемое значение
Распределенный центр уведомления
notificationCenterType.Обсуждение
В настоящее время только один тип,
NSLocalNotificationCenterType, поддерживается.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Добавляет запись в таблицу отгрузки получателя с наблюдателем, уведомление селекторные и дополнительные критерии: имя уведомления и отправитель.
Объявление
Параметры
notificationObserverОбъект, регистрирующийся как наблюдатель. Не должен быть
nil.notificationSelectorСелектор, указывающий сообщение получатель, отправляет
notificationObserverуведомлять его относительно регистрации уведомления. Не должен быть0.notificationNameИмя уведомления, для которого можно зарегистрировать наблюдателя; т.е. только уведомления с этим именем поставлены наблюдателю. Когда
nil, центр уведомления не использует имя уведомления, чтобы решить, поставить ли его наблюдателю.notificationSenderОбъект, уведомления которого наблюдатель хотят получить; т.е. только уведомления, отправленные этим отправителем, поставлены наблюдателю. Когда
nil, центр уведомления не использует отправителя уведомления, чтобы решить, поставить ли его наблюдателю.Обсуждение
Это вызовы метода
addObserver:selector:name:object:suspensionBehavior:сsuspensionBehavior:NSNotificationSuspensionBehaviorCoalesce(описанный в Константах).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
addObserver (_: selector:name:object:suspensionBehavior:) - addObserver:selector:name:object:suspensionBehavior:Добавляет запись в таблицу отгрузки получателя с определенным наблюдателем и поведением приостановленных уведомлений, и именем необязательного уведомления и отправителем.
Объявление
Swift
func addObserver(_notificationObserver: AnyObject, selectornotificationSelector: Selector, namenotificationName: String?, objectnotificationSender: String?, suspensionBehaviorsuspendedDeliveryBehavior: NSNotificationSuspensionBehavior)Objective C
- (void)addObserver:(id)notificationObserverselector:(SEL)notificationSelectorname:(NSString *)notificationNameobject:(NSString *)notificationSendersuspensionBehavior:(NSNotificationSuspensionBehavior)suspendedDeliveryBehaviorПараметры
notificationObserverОбъект, регистрирующийся как наблюдатель. Не должен быть
nil.notificationSelectorСелектор, указывающий сообщение получатель, отправляет
notificationObserverуведомлять его относительно регистрации уведомления. Не должен быть0.notificationNameИмя уведомления, для которого можно зарегистрировать наблюдателя; т.е. только уведомления с этим именем поставлены наблюдателю. Когда
nil, центр уведомления не использует имя уведомления, чтобы решить, поставить ли его наблюдателю.notificationSenderОбъект, уведомления которого наблюдатель хотят получить; т.е. только уведомления, отправленные этим отправителем, поставлены наблюдателю. Когда
nil, центр уведомления не использует отправителя уведомления, чтобы решить, поставить ли его наблюдателю.suspendedDeliveryBehaviorУведомление, отправляющее поведение, когда приостановлена поставка уведомления.
Обсуждение
Получатель не сохраняет
notificationObserver. Поэтому необходимо всегда отправлятьremoveObserver:илиremoveObserver:name:object:к получателю перед выпускомnotificationObserver.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Удаляет соответствие записей из таблицы отгрузки получателя.
Объявление
Параметры
notificationObserverНаблюдатель для удаления из таблицы отгрузки. Укажите наблюдателя для удаления только записей для этого наблюдателя. Когда
nil, получатель не использует наблюдателей уведомления в качестве критериев удаления.notificationNameИмя уведомления для удаления из таблицы отгрузки. Укажите имя уведомления для удаления только записей, указывающих это имя уведомления. Когда
nil, получатель не использует имена уведомления в качестве критериев удаления.notificationSenderОтправитель для удаления из таблицы отгрузки. Укажите отправителя уведомления для удаления только записей, указывающих этого отправителя. Когда
nil, получатель не использует отправителей уведомления в качестве критериев удаления.Обсуждение
Обязательно вызовите этот метод с
notificationName:nil notificationSender:nil(илиremoveObserver:) прежде, чем освободить объект наблюдателя.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает уведомление и отправляет его на получатель.
Объявление
Параметры
notificationNameИмя уведомления сообщению. Не должен быть
nil.notificationSenderОтправитель уведомления. Может быть
nil.Обсуждение
Этот метод вызывает
postNotificationName:object:userInfo:deliverImmediately:сuserInfo:nil deliverImmediately:NO.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает уведомление с информацией и отправляет его на получатель.
Объявление
Swift
func postNotificationName(_notificationName: String, objectnotificationSender: String?, userInfonotificationInfo: [NSObject : AnyObject]?)Objective C
- (void)postNotificationName:(NSString *)notificationNameobject:(NSString *)notificationSenderuserInfo:(NSDictionary *)notificationInfoПараметры
notificationNameИмя уведомления сообщению. Не должен быть
nil.notificationSenderОтправитель уведомления. Может быть
nil.notificationInfoОбсуждение
Этот метод вызывает
postNotificationName:object:userInfo:deliverImmediately:сdeliverImmediately:NO.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
postNotificationName (_: object:userInfo:deliverImmediately:) - postNotificationName:object:userInfo:deliverImmediately:Создает уведомление с информацией и спецификатором срочной поставки, и отправляет его на получатель.
Объявление
Swift
func postNotificationName(_notificationName: String, objectnotificationSender: String?, userInfouserInfo: [NSObject : AnyObject]?, deliverImmediatelydeliverImmediately: Bool)Objective C
- (void)postNotificationName:(NSString *)notificationNameobject:(NSString *)notificationSenderuserInfo:(NSDictionary *)userInfodeliverImmediately:(BOOL)deliverImmediatelyПараметры
notificationNameИмя уведомления сообщению. Не должен быть
nil.notificationSenderОтправитель уведомления. Может быть
nil.userInfodeliverImmediatelyУказывает, когда поставить уведомление. Когда
NOfalse, получатель поставляет уведомления их наблюдателям согласно поведению приостановленного уведомления, указанному в соответствующей записи таблицы отгрузки. КогдаYEStrue, получатель сразу поставляет уведомление его наблюдателям.Обсуждение
Это - предпочтительный метод для регистрации уведомлений.
notificationInfoсловарь сериализируется как список свойств, таким образом, он может быть передан другой задаче. В задаче получения это десериализовывается назад в словарь. Эта сериализация налагает некоторые ограничения на объекты, которые могут быть помещены вnotificationInfoсловарь. См. Списки свойств XML для подробных данных.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает уведомление с информацией и отправляет его на получатель.
Объявление
Swift
func postNotificationName(_notificationName: String, objectnotificationSender: String?, userInfouserInfo: [NSObject : AnyObject]?, optionsnotificationOptions: Int)Objective C
- (void)postNotificationName:(NSString *)notificationNameobject:(NSString *)notificationSenderuserInfo:(NSDictionary *)userInfooptions:(NSUInteger)notificationOptionsПараметры
notificationNameИмя уведомления сообщению. Не должен быть
nil.notificationSenderОтправитель уведомления. Может быть
nil.userInfonotificationOptionsУказывает, как уведомление отправляется на задачу и когда поставить его ее наблюдателям. См., что Уведомление Отправляет Поведение для подробных данных.
Обсуждение
userInfoсловарь сериализируется как список свойств, таким образом, он может быть передан другой задаче. В задаче получения это десериализовывается назад в словарь. Эта сериализация налагает некоторые ограничения на объекты, которые могут быть помещены вuserInfoсловарь. См. Списки свойств XML для подробных данных.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает булево значение, указывающее, приостановлена ли поставка уведомления.
Объявление
Swift
var suspended: BoolObjective C
@property BOOL suspendedВозвращаемое значение
YEStrueкогда поставка уведомления приостановлена, иначеNOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Приостанавливает или возобновляет поставку уведомления.
Объявление
Swift
var suspended: BoolObjective C
@property BOOL suspendedПараметры
suspendedYEStrueприостанавливает поставку уведомления,NOfalseрезюме это.Обсуждение
Посмотрите
NSNotificationSuspensionBehaviorдля подробных данных о том, как получатель поставляет уведомления их наблюдателям, когда приостановлена нормальная поставка уведомления.NSApplicationкогда приложение не активно, класс автоматически приостанавливает распределенную поставку уведомления. Приложения на основе платформы Набора Приложения должны позволить AppKit управлять приостановкой поставки уведомления. Программы только для основы могут иметь случайную потребность использовать этот метод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
Типы данных
-
Эти константы указывают типы способов поведения приостановки поставки уведомления.
Объявление
Swift
enum NSNotificationSuspensionBehavior : UInt { case Drop case Coalesce case Hold case DeliverImmediately }Objective C
typedef enum { NSNotificationSuspensionBehaviorDrop = 1, NSNotificationSuspensionBehaviorCoalesce = 2, NSNotificationSuspensionBehaviorHold = 3, NSNotificationSuspensionBehaviorDeliverImmediately = 4 } NSNotificationSuspensionBehavior;Константы
-
DropNSNotificationSuspensionBehaviorDropСервер не ставит уведомлений в очередь с этим именем и объектом до
setSuspended:с параметромNOfalseвызывается.Доступный в OS X v10.0 и позже.
-
CoalesceNSNotificationSuspensionBehaviorCoalesceСервер только ставит последнее уведомление в очередь об указанном имени и объекте; отбрасываются более ранние уведомления. В методах покрытия, за которые поведение приостановки не является явным параметром,
NSNotificationSuspensionBehaviorCoalesceзначение по умолчанию.Доступный в OS X v10.0 и позже.
-
HoldNSNotificationSuspensionBehaviorHoldСервер содержит все уведомления соответствия, пока очередь не была переполнена (размер очереди, определенный сервером), в которой точке сервер может сбросить поставленные в очередь уведомления.
Доступный в OS X v10.0 и позже.
-
DeliverImmediatelyNSNotificationSuspensionBehaviorDeliverImmediatelyСервер поставляет уведомления, соответствующие эту регистрацию независимо от ли
setSuspended:с параметромYEStrueбыл вызван. Когда уведомление с этим поведением приостановки является соответствующим, это имеет эффект первого сбрасывания любых уведомлений с очередями. Эффект состоит в том как будтоsetSuspended:с параметромNOfalseесли приложение приостанавливается, сопровождается рассматриваемым уведомлением, поставляемым, сопровождается переходом назад к предыдущему приостановленному или неприостановленному состоянию, были сначала вызваны.Доступный в OS X v10.0 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
-
Эта константа указывает тип центра уведомления.
Объявление
Swift
let NSLocalNotificationCenterType: NSString!Objective C
FOUNDATION_EXPORT NSString * const NSLocalNotificationCenterType;Константы
-
Эти константы указывают поведение уведомлений, отправленных с помощью
postNotificationName:object:userInfo:options:метод.Объявление
Swift
var NSNotificationDeliverImmediately: Int { get } var NSNotificationPostToAllSessions: Int { get }Objective C
enum { NSNotificationDeliverImmediately = (1 << 0), NSNotificationPostToAllSessions = (1 << 1) };Константы
-
NSNotificationDeliverImmediatelyNSNotificationDeliverImmediatelyКогда установлено, уведомление сразу поставлено всем наблюдателям, независимо от их поведения приостановки или состояния приостановки. Если не набор, позволяет нормальному поведению приостановки наблюдателей уведомления иметь место.
Доступный в OS X v10.3 и позже.
-
NSNotificationPostToAllSessionsNSNotificationPostToAllSessionsКогда установлено, уведомление отправляется на все сеансы. Если не набор, уведомление отправляется только в приложения в том же сеансе входа в систему как задача регистрации.
Доступный в OS X v10.3 и позже.
-
