NSNotificationQueue
Объекты NSNotificationQueue (или просто очереди уведомления) действуют как буферы для центров уведомления (экземпляры NSNotificationCenter). Принимая во внимание, что центр уведомления распределяет уведомления, когда отправлено, уведомления, помещенные в очередь, могут быть задержаны до конца текущей передачи через цикл выполнения или пока цикл выполнения не неактивен. Двойные уведомления могут также быть объединены так, чтобы только одно уведомление было отправлено несмотря на то, что отправляются многократные уведомления. Очередь уведомления поддерживает уведомления (экземпляры NSNotification) обычно в порядке метода «первым пришел - первым вышел» (FIFO). Когда уведомление повышается до передней стороны очереди, очередь отправляет его на центр уведомления, поочередно диспетчеризирующий уведомление всем объектам, зарегистрированным как наблюдатели.
Каждый поток имеет очередь уведомления по умолчанию, связанную с центром уведомления по умолчанию задачи. Можно создать собственные очереди уведомления и иметь многократные очереди на центр и поток.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (notificationCenter:) - initWithNotificationCenter:
Определяемый инициализаторИнициализирует и возвращает очередь уведомления для указанного центра уведомления.
Объявление
Swift
init(notificationCenter
notificationCenter
: NSNotificationCenter)Objective C
- (instancetype)initWithNotificationCenter:(NSNotificationCenter *)
notificationCenter
Параметры
notificationCenter
Центр уведомления используется новой очередью уведомления.
Возвращаемое значение
Недавно инициализированная очередь уведомления.
Обсуждение
Это - определяемый инициализатор для класса NSNotificationQueue.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает очередь уведомления по умолчанию для текущего потока.
Объявление
Swift
class func defaultQueue() -> NSNotificationQueue
Objective 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 *)
notification
postingStyle:(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 *)
notification
postingStyle:(NSPostingStyle)postingStyle
coalesceMask:(NSUInteger)coalesceMask
forModes:(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 *)
notification
coalesceMask:(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;
Константы
-
NoCoalescing
NSNotificationNoCoalescing
Не объединяйте уведомления в очереди.
Доступный в OS X v10.0 и позже.
-
CoalescingOnName
NSNotificationCoalescingOnName
Объедините уведомления с тем же именем.
Доступный в OS X v10.0 и позже.
-
CoalescingOnSender
NSNotificationCoalescingOnSender
Объедините уведомления с тем же объектом.
Доступный в 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;
Константы
-
PostASAP
NSPostASAP
Уведомление отправляется в конце текущей выноски уведомления или таймера.
Доступный в OS X v10.0 и позже.
-
PostWhenIdle
NSPostWhenIdle
Когда цикл выполнения неактивен, уведомление отправляется.
Доступный в OS X v10.0 и позже.
-
PostNow
NSPostNow
Уведомление сразу отправляется после объединения.
Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются в обоих
enqueueNotification:postingStyle:
иenqueueNotification:postingStyle:coalesceMask:forModes:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-