NSNotificationQueue
Объекты NSNotificationQueue (или просто очереди уведомления) действуют как буферы для центров уведомления (экземпляры NSNotificationCenter). Принимая во внимание, что центр уведомления распределяет уведомления, когда отправлено, уведомления, помещенные в очередь, могут быть задержаны до конца текущей передачи через цикл выполнения или пока цикл выполнения не неактивен. Двойные уведомления могут также быть объединены так, чтобы только одно уведомление было отправлено несмотря на то, что отправляются многократные уведомления. Очередь уведомления поддерживает уведомления (экземпляры NSNotification) обычно в порядке метода «первым пришел - первым вышел» (FIFO). Когда уведомление повышается до передней стороны очереди, очередь отправляет его на центр уведомления, поочередно диспетчеризирующий уведомление всем объектам, зарегистрированным как наблюдатели.
Каждый поток имеет очередь уведомления по умолчанию, связанную с центром уведомления по умолчанию задачи. Можно создать собственные очереди уведомления и иметь многократные очереди на центр и поток.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (notificationCenter:) - initWithNotificationCenter:Определяемый инициализаторИнициализирует и возвращает очередь уведомления для указанного центра уведомления.
Объявление
Swift
init(notificationCenternotificationCenter: NSNotificationCenter)Objective C
- (instancetype)initWithNotificationCenter:(NSNotificationCenter *)notificationCenterПараметры
notificationCenterЦентр уведомления используется новой очередью уведомления.
Возвращаемое значение
Недавно инициализированная очередь уведомления.
Обсуждение
Это - определяемый инициализатор для класса NSNotificationQueue.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает очередь уведомления по умолчанию для текущего потока.
Объявление
Swift
class func defaultQueue() -> NSNotificationQueueObjective C
+ (NSNotificationQueue *)defaultQueueВозвращаемое значение
Возвращает очередь уведомления по умолчанию для текущего потока. Эта очередь уведомления использует центр уведомления по умолчанию.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Добавляет уведомление очереди уведомления с указанным стилем регистрации.
Объявление
Swift
func enqueueNotification(_notification: NSNotification, postingStylepostingStyle: NSPostingStyle)Objective C
- (void)enqueueNotification:(NSNotification *)notificationpostingStyle:(NSPostingStyle)postingStyleПараметры
notificationУведомление, чтобы добавить к очереди.
postingStyleСтиль регистрации для уведомления. Когда очередь уведомления должна отправить уведомление своему центру уведомления, стиль регистрации указывает.
Обсуждение
Уведомления, добавленные с этим методом, отправляются с помощью runloop режима
NSDefaultRunLoopModeи объединение критериев, которые объединят только уведомления, соответствующие обоим имя и объект уведомления.Этот метод вызывает
enqueueNotification:postingStyle:coalesceMask:forModes:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
enqueueNotification (_: postingStyle:coalesceMask:forModes:) - enqueueNotification:postingStyle:coalesceMask:forModes:Добавляет уведомление очереди уведомления с указанным стилем регистрации, критериями объединения и runloop режимом.
Объявление
Swift
func enqueueNotification(_notification: NSNotification, postingStylepostingStyle: NSPostingStyle, coalesceMaskcoalesceMask: Int, forModesmodes: [AnyObject]?)Objective C
- (void)enqueueNotification:(NSNotification *)notificationpostingStyle:(NSPostingStyle)postingStylecoalesceMask:(NSUInteger)coalesceMaskforModes:(NSArray *)modesПараметры
notificationУведомление, чтобы добавить к очереди.
postingStyleСтиль регистрации для уведомления. Когда очередь уведомления должна отправить уведомление своему центру уведомления, стиль регистрации указывает.
coalesceMaskМаска, указывающая, что критерии использовать при соответствии атрибутов
notificationк атрибутам уведомлений в очереди. Маска создается путем объединения любой из константNSNotificationNoCoalescing,NSNotificationCoalescingOnName, иNSNotificationCoalescingOnSender.modesСписок режимов уведомление может быть отправлен в. Если цикл выполнения будет в одном из режимов, предоставленных в массиве, очередь уведомления только отправит уведомление своему центру уведомления. Может быть
nil, когда это принимает значение по умолчанию кNSDefaultRunLoopMode.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Удаляет все уведомления из очереди, соответствующие предоставленное уведомление с помощью предоставленный соответствие критериев.
Объявление
Swift
func dequeueNotificationsMatching(_notification: NSNotification, coalesceMaskcoalesceMask: Int)Objective C
- (void)dequeueNotificationsMatching:(NSNotification *)notificationcoalesceMask:(NSUInteger)coalesceMaskПараметры
notificationУведомление, используемое для соответствия уведомлений для удаления из очереди уведомления.
coalesceMaskМаска, указывающая, что критерии использовать при соответствии атрибутов
notificationк атрибутам уведомлений в очереди. Маска создается путем объединения любой из константNSNotificationNoCoalescing,NSNotificationCoalescingOnName, иNSNotificationCoalescingOnSender.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
Типы данных
-
Эти константы указывают, как объединяются уведомления.
Объявление
Swift
enum NSNotificationCoalescing : UInt { case NoCoalescing case CoalescingOnName case CoalescingOnSender }Objective C
typedef enum { NSNotificationNoCoalescing = 0, NSNotificationCoalescingOnName = 1, NSNotificationCoalescingOnSender = 2 } NSNotificationCoalescing;Константы
-
NoCoalescingNSNotificationNoCoalescingНе объединяйте уведомления в очереди.
Доступный в OS X v10.0 и позже.
-
CoalescingOnNameNSNotificationCoalescingOnNameОбъедините уведомления с тем же именем.
Доступный в OS X v10.0 и позже.
-
CoalescingOnSenderNSNotificationCoalescingOnSenderОбъедините уведомления с тем же объектом.
Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются в третьем параметре
enqueueNotification:postingStyle:coalesceMask:forModes:. Вы можете OR их вместе для указания больше чем одного.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
-
Когда уведомления отправляются, эти константы указывают.
Объявление
Swift
enum NSPostingStyle : UInt { case PostWhenIdle case PostASAP case PostNow }Objective C
typedef enum { NSPostWhenIdle = 1, NSPostASAP = 2, NSPostNow = 3 } NSPostingStyle;Константы
-
PostASAPNSPostASAPУведомление отправляется в конце текущей выноски уведомления или таймера.
Доступный в OS X v10.0 и позже.
-
PostWhenIdleNSPostWhenIdleКогда цикл выполнения неактивен, уведомление отправляется.
Доступный в OS X v10.0 и позже.
-
PostNowNSPostNowУведомление сразу отправляется после объединения.
Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются в обоих
enqueueNotification:postingStyle:иenqueueNotification:postingStyle:coalesceMask:forModes:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
