Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CloudKit ссылка класса CKFetchRecordChangesOperation

Опции
Развертывание Target:

На этой странице
Язык:

CKFetchRecordChangesOperation

A CKFetchRecordChangesOperation возразите отчетам относительно измененных и удаленных записей в указанной рекордной зоне. Используйте этот тип объекта операции для оптимизации операций выборки для локально управляемых наборов записей. В частности используйте его, когда Вы поддержите локальный кэш своих рекордных данных и должны будете периодически синхронизировать тот кэш с сервером.

Извлечь максимальную пользу из a CKFetchRecordChangesOperation объект, необходимо поддержать локальный кэш записей от указанной зоны. Каждый раз, когда Вы выбираете изменения от той зоны, сервер обеспечивает маркер, идентифицирующий Ваш запрос. С каждым последующим запросом выборки Вы инициализируете объект операции с маркером от предыдущего запроса, и сервер возвращает только записи, изменившиеся начиная с того запроса.

Блоки, которые Вы присваиваете для обработки выбранных записей, выполняются последовательно на внутренней очереди, которой управляет работа. Ваши блоки должны быть способны к выполнению на фоновом потоке, таким образом, любые задачи, требующие доступа к основному потоку, должны быть перенаправлены соответственно.

Если Вы присваиваете блок завершения completionBlock свойство объекта операции, блок завершения вызывают после того, как работа выполняет и возвращает свои результаты Вам. Вы можете использовать блок завершения для выполнения работы по дому обслуживания, связанной с работой, но не используете ее для обработки результатов самой работы. Любой блок завершения, который Вы указываете, должен быть подготовлен обработать отказ работы выполнить ее задачу, ли вследствие ошибки или явной отмены.

Наследование


Соответствует


Оператор импорта


Swift

import CloudKit

Objective C

@import CloudKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Инициализирует и возвращает объект операции, сконфигурированный для выборки изменений в указанной рекордной зоне.

    Объявление

    Swift

    init!(recordZoneID recordZoneID: CKRecordZoneID!, previousServerChangeToken previousServerChangeToken: CKServerChangeToken!)

    Objective C

    - (instancetype)initWithRecordZoneID:(CKRecordZoneID *)recordZoneID previousServerChangeToken:(CKServerChangeToken *)previousServerChangeToken

    Параметры

    recordZoneID

    Зона, содержащая записи, Вы хотите выбрать. Зона может быть пользовательской зоной или зоной по умолчанию.

    previousServerChangeToken

    Маркер изменения от предыдущей работы выборки. Это - маркер, переданный Вашему fetchRecordChangesCompletionBlock обработчик во время предыдущей работы выборки. Используйте этот маркер для ограничения возвращенных данных только теми изменениями, произошедшими, так как Вы в последний раз выполнили тот же запрос выборки. Если Вы указываете nil для этого параметра объект операции выбирает все записи и их содержание.

    Возвращаемое значение

    Инициализированный объект операции.

    Обсуждение

    При инициализации объекта операции используйте маркер от предыдущего запроса выборки, если у Вас есть тот. Можно заархивировать маркеры и записать им в диск для более позднего использования в случае необходимости.

    Возвращенный объект операции сконфигурирован для получения всех измененных полей записи, включая любые активы, сохраненные в тех полях. Если Вы хотите минимизировать объем данных, возвращенный еще больше, сконфигурируйте desiredKeys свойство с подмножеством ключей, значения которых Вы хотите выбрать.

    После инициализации работы свяжите по крайней мере один блок прогресса с объектом операции (исключая блок завершения) для обработки результатов.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • recordZoneID recordZoneID Свойство

    ID рекордной зоны, записи которой Вы хотите выбрать.

    Объявление

    Swift

    @NSCopying var recordZoneID: CKRecordZoneID!

    Objective C

    @property(nonatomic, copy) CKRecordZoneID *recordZoneID

    Обсуждение

    Как правило, Вы устанавливаете значение этого свойства при инициализации объекта операции. Если Вы намереваетесь изменить рекордную зону, обновите значение прежде, чем выполнить работу или представить его очереди.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Маркер, идентифицирующий начальную точку для получения изменений.

    Объявление

    Swift

    @NSCopying var previousServerChangeToken: CKServerChangeToken!

    Objective C

    @property(nonatomic, copy) CKServerChangeToken *previousServerChangeToken

    Обсуждение

    Каждый запрос выборки возвращает уникальный маркер в дополнение к любым изменениям. Маркер передается в качестве параметра Вашему fetchRecordChangesCompletionBlock обработчик. Во время последующего запроса выборки, обеспечивая предыдущий маркер заставляет сервер возвращать только изменения, произошедшие начиная с последнего запроса выборки. Маркеры являются непрозрачными объектами данных, которые можно записать в диск безопасно и повторное использование позже.

    Как правило, Вы устанавливаете значение этого свойства при инициализации объекта операции. Если Вы намереваетесь изменить рекордную зону, обновите значение свойства прежде, чем выполнить работу или представить его очереди.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • desiredKeys desiredKeys Свойство

    Поля для выборки для требуемых записей.

    Объявление

    Swift

    var desiredKeys: [AnyObject]!

    Objective C

    @property(nonatomic, copy) NSArray *desiredKeys

    Обсуждение

    Используйте это свойство для ограничения объема данных, полученного для каждой записи во время работы выборки. Это свойство содержит массив NSString объекты, каждый из которых содержит имя поля от целевых записей. При получении данного рекордного, только полей, имена которых соответствуют, один из ключей в этом свойстве включены в возвращенную запись. Значение по умолчанию 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

    Обсуждение

    Используйте это свойство для ограничения числа результатов в ситуациях, где Вы ожидаете, что число измененных записей могло бы быть большим. Значение по умолчанию 0, который заставляет сервер выбирать надлежащее число результатов возвратиться на основе динамических условий.

    Когда число возвращенных результатов превышает предел результатов, объект операции устанавливает moreComing свойство к YEStrue прежде, чем выполнить блок в fetchRecordChangesCompletionBlock свойство. В Вашем блоке проверьте значение того свойства, и если это YEStrue, создайте новое CKFetchRecordChangesOperation возразите для выборки большего количества результатов.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Блок для выполнения с содержанием измененной записи.

    Объявление

    Swift

    var recordChangedBlock: ((CKRecord!) -> Void)!

    Objective C

    @property(nonatomic, copy) void (^recordChangedBlock)( CKRecord *record)

    Обсуждение

    Блок не возвращает значения и берет следующие параметры:

    record

    Изменившаяся запись. Поля в этом рекордном объекте могут не отразить все поля, доступные для той записи. В частности запись содержит значения только для тех изменившихся полей. Если Вы указали значение для desiredKeys свойство, измененные поля включены, только если их имя поля было указано в том массиве.

    Объект операции выполняет этот блок один раз для каждой записи в зоне, изменившейся начиная с предыдущего запроса выборки. Каждый раз, когда блок выполняется, он выполняется последовательно относительно других блоков прогресса работы. Если никакие записи не изменились, блок не выполняется.

    Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить его очереди.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Блок для выполнения с ID удаленной записи.

    Объявление

    Swift

    var recordWithIDWasDeletedBlock: ((CKRecordID!) -> Void)!

    Objective C

    @property(nonatomic, copy) void (^recordWithIDWasDeletedBlock)( CKRecordID *recordID)

    Обсуждение

    Блок не возвращает значения и берет следующие параметры:

    recordID

    ID удаленной записи.

    Объект операции выполняет этот блок один раз для каждой записи в зоне, удаленной начиная с предыдущего запроса выборки. Каждый раз, когда блок выполняется, он выполняется последовательно относительно других блоков прогресса работы. Если никакие записи не были удалены, этот блок не выполняется.

    Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить его очереди.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Блок для выполнения, когда сообщили обо всех изменениях.

    Объявление

    Swift

    var fetchRecordChangesCompletionBlock: ((CKServerChangeToken!, NSData!, NSError!) -> Void)!

    Objective C

    @property(nonatomic, copy) void (^fetchRecordChangesCompletionBlock)( CKServerChangeToken *serverChangeToken, NSData *clientChangeTokenData, NSError *operationError)

    Обсуждение

    Блок не возвращает значения и берет следующие параметры:

    serverChangeToken

    Новый маркер изменения от сервера. Можно сохранить этот маркер локально и использовать его во время последующих операций выборки для ограничения результатов записями, изменившимися, так как эта работа выполнилась.

    clientChangeToken

    Маркер изменения, который Вы указали при инициализации объекта операции.

    operationError

    Ошибочный объект, содержащий информацию о проблеме, или nil если изменения получены успешно.

    Ваша реализация этого блока должна проверить moreComing свойство объекта операции, чтобы гарантировать, что сервер смог поставить все результаты. Если то свойство установлено в YEStrue, необходимо создать другой объект операции (использующий значение в serverChangeToken параметр) для выборки любых остающихся изменений.

    Объект операции выполняет этот блок только один раз, в конце работы. Это выполняется после всех отдельных блоков изменения, но перед блоком завершения работы. Блок выполняется последовательно относительно других блоков прогресса работы.

    Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.

    Оператор импорта

    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

    Обсуждение

    Если сервер неспособен поставить все измененные результаты с этим объектом операции, он устанавливает это свойство в YEStrue прежде, чем выполнить блок в fetchRecordChangesCompletionBlock свойство. Для выборки остающихся изменений создайте новое CKFetchRecordChangesOperation объект с помощью маркера изменения, возвращенного сервером.

    Оператор импорта

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.