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() -> NSDistributedNotificationCenter
Objective 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)
notificationObserver
selector:(SEL)notificationSelector
name:(NSString *)notificationName
object:(NSString *)notificationSender
suspensionBehavior:(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 *)
notificationName
object:(NSString *)notificationSender
userInfo:(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 *)
notificationName
object:(NSString *)notificationSender
userInfo:(NSDictionary *)userInfo
deliverImmediately:(BOOL)deliverImmediately
Параметры
notificationName
Имя уведомления сообщению. Не должен быть
nil
.notificationSender
Отправитель уведомления. Может быть
nil
.userInfo
deliverImmediately
Указывает, когда поставить уведомление. Когда
NO
false
, получатель поставляет уведомления их наблюдателям согласно поведению приостановленного уведомления, указанному в соответствующей записи таблицы отгрузки. КогдаYES
true
, получатель сразу поставляет уведомление его наблюдателям.Обсуждение
Это - предпочтительный метод для регистрации уведомлений.
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 *)
notificationName
object:(NSString *)notificationSender
userInfo:(NSDictionary *)userInfo
options:(NSUInteger)notificationOptions
Параметры
notificationName
Имя уведомления сообщению. Не должен быть
nil
.notificationSender
Отправитель уведомления. Может быть
nil
.userInfo
notificationOptions
Указывает, как уведомление отправляется на задачу и когда поставить его ее наблюдателям. См., что Уведомление Отправляет Поведение для подробных данных.
Обсуждение
userInfo
словарь сериализируется как список свойств, таким образом, он может быть передан другой задаче. В задаче получения это десериализовывается назад в словарь. Эта сериализация налагает некоторые ограничения на объекты, которые могут быть помещены вuserInfo
словарь. См. Списки свойств XML для подробных данных.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает булево значение, указывающее, приостановлена ли поставка уведомления.
Объявление
Swift
var suspended: Bool
Objective C
@property BOOL suspended
Возвращаемое значение
YES
true
когда поставка уведомления приостановлена, иначеNO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Приостанавливает или возобновляет поставку уведомления.
Объявление
Swift
var suspended: Bool
Objective C
@property BOOL suspended
Параметры
suspended
YES
true
приостанавливает поставку уведомления,NO
false
резюме это.Обсуждение
Посмотрите
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;
Константы
-
Drop
NSNotificationSuspensionBehaviorDrop
Сервер не ставит уведомлений в очередь с этим именем и объектом до
setSuspended:
с параметромNO
false
вызывается.Доступный в OS X v10.0 и позже.
-
Coalesce
NSNotificationSuspensionBehaviorCoalesce
Сервер только ставит последнее уведомление в очередь об указанном имени и объекте; отбрасываются более ранние уведомления. В методах покрытия, за которые поведение приостановки не является явным параметром,
NSNotificationSuspensionBehaviorCoalesce
значение по умолчанию.Доступный в OS X v10.0 и позже.
-
Hold
NSNotificationSuspensionBehaviorHold
Сервер содержит все уведомления соответствия, пока очередь не была переполнена (размер очереди, определенный сервером), в которой точке сервер может сбросить поставленные в очередь уведомления.
Доступный в OS X v10.0 и позже.
-
DeliverImmediately
NSNotificationSuspensionBehaviorDeliverImmediately
Сервер поставляет уведомления, соответствующие эту регистрацию независимо от ли
setSuspended:
с параметромYES
true
был вызван. Когда уведомление с этим поведением приостановки является соответствующим, это имеет эффект первого сбрасывания любых уведомлений с очередями. Эффект состоит в том как будтоsetSuspended:
с параметромNO
false
если приложение приостанавливается, сопровождается рассматриваемым уведомлением, поставляемым, сопровождается переходом назад к предыдущему приостановленному или неприостановленному состоянию, были сначала вызваны.Доступный в 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) };
Константы
-
NSNotificationDeliverImmediately
NSNotificationDeliverImmediately
Когда установлено, уведомление сразу поставлено всем наблюдателям, независимо от их поведения приостановки или состояния приостановки. Если не набор, позволяет нормальному поведению приостановки наблюдателей уведомления иметь место.
Доступный в OS X v10.3 и позже.
-
NSNotificationPostToAllSessions
NSNotificationPostToAllSessions
Когда установлено, уведомление отправляется на все сеансы. Если не набор, уведомление отправляется только в приложения в том же сеансе входа в систему как задача регистрации.
Доступный в OS X v10.3 и позже.
-