CKFetchRecordsOperation
Наследование
-
NSObject -
NSOperation -
CKOperation -
CKDatabaseOperation -
CKFetchRecordsOperation
-
NSObject -
NSOperation -
CKOperation -
CKDatabaseOperation -
CKFetchRecordsOperation
Оператор импорта
Swift
import CloudKit
Objective C
@import CloudKit;
Доступность
Доступный в iOS 8.0 и позже.
A CKFetchRecordsOperation объект получает CKRecord объекты (чей IDs Вы уже знаете) от iCloud. Используйте эту работу для получения всего содержания каждой записи или только подмножества ее содержавших значений. Поскольку записи становятся доступными, прогресс отчетов объекта операции о состоянии работы к нескольким различным блокам, которые можно использовать для обработки результатов.
Даже если Ваше приложение не кэширует рекордный IDs локально, выборка записей является общим использованием CloudKit. Например, когда Вы выбираете запись, связанную с текущей записью через a CKReference объект, Вы используете ID в ссылке для выполнения выборки.
Блоки, которые Вы присваиваете для обработки выбранных записей, выполняются последовательно на внутренней очереди, которой управляет работа записей выборки. Ваши блоки должны быть способны к выполнению на фоновом потоке, таким образом, любые задачи, требующие доступа к основному потоку, должны быть перенаправлены соответственно.
В дополнение к записям данных работа записей выборки может выбрать текущую пользовательскую запись. fetchCurrentUserRecordOperation метод возвращает специально сконфигурированный объект операции, получающий текущую пользовательскую запись. Та запись является стандартом CKRecord возразите, чье содержание пусто первоначально. Можно добавить, что данные пользователю записывают и сохраняют его по мере необходимости. Поскольку к поддающейся обнаружению пользовательской записи могут получить доступ другие пользователи приложения, никогда не храните чувствительную персональную информацию, такую как пароли в пользовательской записи. Если необходимо хранить уязвимую информацию о пользователе, сделайте так в отдельной записи, которая доступна только для того пользователя.
Если Вы присваиваете блок завершения completionBlock свойство объекта операции, блок завершения вызывают после того, как работа выполняет и возвращает свои результаты Вам. Вы можете использовать блок завершения для выполнения работы по дому обслуживания, связанной с работой, но не используете ее для обработки результатов самой работы. Любой блок завершения, который Вы указываете, должен быть подготовлен обработать отказ работы выполнить ее задачу, ли вследствие ошибки или явной отмены.
-
Инициализирует и возвращает объект операции, сконфигурированный для выборки записей с указанным IDs.
Объявление
Swift
convenience init!(recordIDsrecordIDs: [AnyObject]!)Objective C
- (instancetype)initWithRecordIDs:(NSArray *)recordIDsПараметры
recordIDsМассив
CKRecordIDобъекты, представляющие записи, Вы хотите получить. Этот параметр используется для инициализации значения вrecordIDsсвойство. Если указываютnil, необходимо присвоить надлежащее значениеrecordIDsсвойство прежде, чем выполнить работу.Если какой-либо из объектов в массиве не
CKRecordIDобъекты, этот метод повышает исключение.Возвращаемое значение
Инициализированный объект операции.
Обсуждение
Возвращенный объект операции сконфигурирован для получения всех полей записи, включая любые активы, сохраненные в тех полях. Если Вы хотите минимизировать объем данных, возвращенный первоначально, сконфигурируйте
desiredKeysсвойство с подмножеством ключей, значения которых Вы хотите получить.После инициализации работы необходимо связать по крайней мере один блок прогресса с объектом операции (исключая блок завершения) для обработки результатов.
Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
Возвращает объект операции, который может использоваться для выборки текущей пользовательской записи.
Объявление
Swift
class func fetchCurrentUserRecordOperation() -> Self!Objective C
+ (instancetype)fetchCurrentUserRecordOperationОбсуждение
Возвращенный объект операции ищет единственную запись, соответствующую текущей пользовательской записи. Необходимо связать по крайней мере один блок прогресса с объектом операции (исключая блок завершения) для обработки результатов.
Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
recordIDsСвойствоМассив IDs, соответствующего записям на выборку.
Объявление
Swift
var recordIDs: [AnyObject]!Objective C
@property(nonatomic, copy) NSArray *recordIDsОбсуждение
Используйте это свойство, чтобы просмотреть или изменить IDs записей, которые Вы хотите получить. Каждый элемент в массиве должен быть a
CKRecordIDобъект. Если Вы использовалиfetchCurrentUserRecordOperationметод для создания объекта операции содержание этого свойства проигнорировано, и значение установлено вnil.Если Вы намереваетесь указать значение кроме
nil, сделайте так прежде, чем выполнить работу или представить объект операции очереди. Записи, которые Вы выбираете, не должны быть в той же рекордной зоне. Рекордный ID для каждой записи предоставляет зональную информацию, необходимую серверу для выборки соответствующей записи.Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
desiredKeysСвойствоПоля для выборки для требуемых записей.
Объявление
Swift
var desiredKeys: [AnyObject]!Objective C
@property(nonatomic, copy) NSArray *desiredKeysОбсуждение
Используйте это свойство для ограничения объема данных, полученного для каждой записи во время работы выборки. Это свойство содержит массив
NSStringобъекты, каждый из которых содержит имя поля от целевых записей. При получении данного рекордного, только полей, имена которых соответствуют, один из ключей в этом свойстве включены в возвращенную запись. Значение по умолчанию этого свойстваnil, который заставляет все ключи записи быть выбранными.Поскольку записи, которые Вы выбираете, могут иметь различные типы, массив должен содержать объединенный набор всех имен полей для требуемых записей и должен включать по крайней мере одно имя поля от каждого типа записи.
Если Вы намереваетесь указать значение кроме
nil, сделайте так прежде, чем выполнить работу или представить объект операции очереди.Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
perRecordProgressBlockСвойствоБлок для выполнения с информацией о прогрессе для отдельных записей.
Объявление
Swift
var perRecordProgressBlock: ((CKRecordID!, Double) -> Void)!Objective C
@property(nonatomic, copy) void (^perRecordProgressBlock)( CKRecordID *recordID, double progress)Обсуждение
Блок не возвращает значения и берет следующие параметры:
recordIDID получающейся записи.
progressСумма записи, загруженной, представляла как процент общего количества. Диапазон этого значения
0.0к1.0, где0.0средние значения ничто не было загружено, и1.0означает, что загрузка завершена.Объект операции выполняет этот блочный нуль или больше раз для каждого рекордного ID в
recordIDsсвойство. Каждый раз, когда блок выполняется, он выполняется последовательно относительно других блоков прогресса работы. Можно использовать этот блок, чтобы отследить продолжающийся прогресс работы загрузки и возможно предоставить обратную связь пользователю.Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.
Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
perRecordCompletionBlockСвойствоБлок для выполнения, когда результаты единственной записи доступны.
Объявление
Swift
var perRecordCompletionBlock: ((CKRecord!, CKRecordID!, NSError!) -> Void)!Objective C
@property(nonatomic, copy) void (^perRecordCompletionBlock)( CKRecord *record, CKRecordID *recordID, NSError *error)Обсуждение
Блок не возвращает значения и берет следующие параметры:
recordПолученная запись, или
nilесли не может быть получена указанная запись.recordIDID записи. Это значение соответствует одному из IDs, который Вы указали в
recordIDsсвойство.errorОшибочный объект, содержащий информацию о проблеме, или
nilесли результаты получены успешно.Объект операции выполняет этот блок один раз для каждого рекордного ID в
recordIDsсвойство. Каждый раз, когда блок выполняется, он выполняется последовательно относительно других блоков прогресса работы.Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.
Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
-
fetchRecordsCompletionBlockСвойствоБлок для выполнения после всех записей выбирается или получил надлежащие ошибки.
Объявление
Objective C
@property(nonatomic, copy) void (^fetchRecordsCompletionBlock)( NSDictionary *recordsByRecordID, NSError *operationError)Обсуждение
Блок не возвращает значения и берет следующие параметры:
recordsByRecordIDСловарь, содержащий записи, полученные успешно. Каждый ключ в словаре является a
CKRecordIDобъект, соответствующий записи, Вы запросили. Значение каждого ключа является соответствиемCKRecordобъект, полученный от базы данных.operationErrorОшибочный объект, содержащий информацию о проблеме, или
nilесли результаты получены успешно.Объект операции выполняет этот блок только один раз и является Вашим последним шансом обработать результаты работы. Блок выполняется после всех отдельных блоков прогресса, но перед блоком завершения работы. Блок выполняется последовательно относительно других блоков прогресса работы.
Этот блок сообщает об ошибке типа
CKErrorPartialFailureкогда это получает только некоторые записи успешно.userInfoсловарь ошибки содержит aCKPartialErrorsByItemIDKeyключ, значение которогоNSDictionaryобъект. Ключами того словаря является IDs записей, не полученных, и соответствующие значения являются ошибочными объектами, содержащими информацию о том, что произошло.Если Вы намереваетесь использовать этот блок для обработки результатов, установите его прежде, чем выполнить работу или представить объект операции очереди.
Оператор импорта
Objective C
@import CloudKit;Swift
import CloudKitДоступность
Доступный в iOS 8.0 и позже.
