CKFetchNotificationChangesOperation
A CKFetchNotificationChangesOperation
объект получает непрочитанный CKNotification
объекты от контейнера. Объекты уведомления содержат данные, связанные с уведомлениями нажатия, уже отправленными в приложение. Уведомление выборки возражает для идентификации изменений, которые приложение, возможно, пропустило или получать полную полезную нагрузку уведомления нажатия, которая, возможно, была усеченной, когда это было поставлено устройству.
После выборки текущих уведомлений можно отметить некоторых или всех их, как считано использующих a CKMarkNotificationsReadOperation
объект. При отмечании уведомления, поскольку чтение препятствует тому, чтобы он был возвращен последующими операциями выборки.
Блоки, которые Вы присваиваете для обработки выбранных уведомлений, выполняются последовательно на внутренней очереди, которой управляет объект операции. Ваши блоки должны быть способны к выполнению на фоновом потоке, таким образом, любые задачи, требующие доступа к основному потоку, должны быть перенаправлены соответственно.
Если Вы присваиваете блок завершения completionBlock
свойство объекта операции, блок завершения вызывают после того, как работа выполняет и возвращает свои результаты Вам. Вы можете использовать блок завершения для выполнения работы по дому обслуживания, связанной с работой, но не используете ее для обработки результатов самой работы. Любой блок завершения, который Вы указываете, должен быть подготовлен обработать отказ работы выполнить ее задачу, ли вследствие ошибки или явной отмены.
Наследование
-
NSObject
-
NSOperation
-
CKOperation
-
CKFetchNotificationChangesOperation
-
NSObject
-
NSOperation
-
CKOperation
-
CKFetchNotificationChangesOperation
Оператор импорта
Swift
import CloudKit
Objective C
@import CloudKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Инициализирует и возвращает набор объекта операции для выборки изменений уведомления.
Объявление
Swift
init!(previousServerChangeToken
previousServerChangeToken
: CKServerChangeToken!)Objective C
- (instancetype)initWithPreviousServerChangeToken:(CKServerChangeToken *)
previousServerChangeToken
Параметры
previousServerChangeToken
Маркер изменения от предыдущей работы выборки, или
nil
выбирать все изменения. При указании маркера изменения объект операции выбирает только изменения, произошедшие, так как маркер изменения был сгенерирован.Возвращаемое значение
Инициализированный объект операции.
Обсуждение
В первый раз Вы выбираете уведомления, указываете
nil
дляpreviousServerChangeToken
получить информацию обо всех отправленных уведомлениях нажатия. Когда та работа заканчивает выполняться, она передает маркер изменения Вашему блоку завершения. Сохраните тот маркер изменения и используйте его для инициализации новых объектов операции, выбирающих только недавно сгенерированные объекты уведомления.Если Вы отмечаете одно или более уведомлений, как считано использующих a
CKMarkNotificationsReadOperation
даже если Вы указываете, объект, те уведомления не возвращаютсяnil
дляpreviousServerChangeToken
.Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
-
Маркер изменения от предыдущей работы выборки.
Объявление
Swift
@NSCopying var previousServerChangeToken: CKServerChangeToken!
Objective C
@property(nonatomic, copy) CKServerChangeToken *previousServerChangeToken
Обсуждение
Присвойте маркер, который Вы получили ранее из
fetchNotificationChangesCompletionBlock
блок завершения к этому свойству. Выполнение так приводит только к уведомлениям, поступившим начиная с Вашей последней работы выборки. Если Вы указываетеnil
для этого параметра работа запускает выбирающие уведомления в начале списка и возвращает всех кроме тех, которые были уже отмечены как чтение.Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
-
resultsLimit resultsLimit
СвойствоМаксимальное количество результатов выбрать с этой работой.
Объявление
Swift
var resultsLimit: Int
Objective C
@property(nonatomic, assign) NSUInteger resultsLimit
Обсуждение
Используйте это свойство для ограничения числа уведомлений нажатия, обработанных в одной работе. Когда предел результатов достигнут, объект операции обновляет исходный маркер, Вы обеспечили и возвращаете его Вам, чтобы сообщить, что больше результатов доступно.
Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
-
moreComing moreComing
СвойствоБулево значение, указывающее, что больше уведомлений ожидает, чтобы быть поставленным. (только для чтения)
Объявление
Swift
var moreComing: Bool { get }
Objective C
@property(nonatomic, readonly) BOOL moreComing
Обсуждение
Получите доступ к этому свойству только от Вашего
fetchNotificationChangesCompletionBlock
блок. Когда значениеYES
true
, Ваш блок завершения должен создать другогоCKFetchNotificationChangesOperation
объект и использование это для выборки следующего пакета результатов. Используйте маркер изменения, переданный Вашему блоку завершения для конфигурирования нового объекта операции. Указание маркера изменения препятствует тому, чтобы новый объект операции возвратил более старые уведомления.Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Блок, обрабатывающий единственное уведомление нажатия.
Объявление
Swift
var notificationChangedBlock: ((CKNotification!) -> Void)!
Objective C
@property(nonatomic, copy) void (^notificationChangedBlock)( CKNotification *notification)
Обсуждение
Блок не возвращает значения и берет следующий параметр:
notification
CKNotification
объект, соответствующий уведомлению нажатия. Фактический объект, переданный этому методу, является конкретным подклассомCKNotification
это содержит определенные подробные данные об источнике изменения.Объект операции выполняет этот блок один раз для каждого найденного уведомления нажатия. Каждый раз, когда блок выполняется, он выполняется последовательно относительно других блоков прогресса работы.
Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.
Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
-
Блок, выполняющийся после всех требуемых уведомлений, выбирается.
Объявление
Swift
var fetchNotificationChangesCompletionBlock: ((CKServerChangeToken!, NSError!) -> Void)!
Objective C
@property(nonatomic, copy) void (^fetchNotificationChangesCompletionBlock)( CKServerChangeToken *serverChangeToken, NSError *operationError)
Обсуждение
Блок не возвращает значения и берет следующие параметры:
serverChangeToken
Непрозрачный объект, который можно использовать во время последующих операций выборки для получения следующего пакета уведомлений.
operationError
Ошибочный объект, содержащий информацию о проблеме, или
nil
если результаты получены успешно.Объект операции выполняет этот блок только один раз, представляющий Ваш последний шанс обработать результаты работы. Этот блок выполняется после всех отдельных блоков прогресса, но перед блоком завершения работы. Блок выполняется последовательно относительно других блоков прогресса работы.
Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.
В Вашем блоке проверьте значение
moreComing
свойство, чтобы определить, существует ли больше результатов, ожидающих на сервере. Если значение того свойстваYES
true
, используйте значение вserverChangeToken
параметр для конфигурирования новогоCKFetchNotificationChangesOperation
возразите для выборки следующего пакета результатов.Оператор импорта
Objective C
@import CloudKit;
Swift
import CloudKit
Доступность
Доступный в OS X v10.10 и позже.
См. также