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

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

Разработчик

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

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

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

CKDatabase

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

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

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

Взаимодействие с объектами базы данных

Вы взаимодействуете с объектами базы данных следующим образом:

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

  • Используйте удобные методы объекта базы данных выбрать, сохранить, удалить, и запросить содержание базы данных непосредственно. Удобные методы действуют только на один элемент за один раз.

Используя базы данных с объектами операции

Для объектов операции то убывание от CKDatabaseOperation класс, укажите объект базы данных для использования при выполнении работы.

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

  • Если у Вас нет своей собственной очереди, выполните объект операции против базы данных неявно путем вызова addOperation: метод.

Выполнение задач против базы данных непосредственно

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

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


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


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


Swift

import CloudKit

Objective C

@import CloudKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Ищет указанную зону асинхронно записи, соответствующие параметры запроса.

    Объявление

    Swift

    func performQuery(_ query: CKQuery!, inZoneWithID zoneID: CKRecordZoneID!, completionHandler completionHandler: (([AnyObject]!, NSError!) -> Void)!)

    Objective C

    - (void)performQuery:(CKQuery *)query inZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler

    Параметры

    query

    Объект запроса, содержащий параметры для поиска. Если этот параметр, этот метод выдает исключение nil. Для получения информации о том, как создать запросы, см. Ссылку класса CKQuery.

    zoneID

    ID зоны для поиска. Результаты поиска ограничиваются записями в указанной зоне. Указать nil искать зону по умолчанию базы данных.

    completionHandler

    Блок для выполнения с результатами поиска. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    results

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

    error

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

    Обсуждение

    Используйте этот метод для выполнения поисков против текущей базы данных.

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

    Можно искать любое содержание, представленное a CKRecord объект, включая пользовательские записи. Вы не можете использовать этот метод для поиска CKSubscription или CKRecordZone объекты.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выполняет указанную работу асинхронно против текущей базы данных.

    Объявление

    Swift

    func addOperation(_ operation: CKDatabaseOperation!)

    Objective C

    - (void)addOperation:(CKDatabaseOperation *)operation

    Параметры

    operation

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

    Обсуждение

    Не изменяйте свойства объекта операции после вызова этого метода. До выполнения работы этот метод устанавливает объект операции database свойство к текущей базе данных, заменяя любую ранее присвоенную базу данных.

    Этот метод выполняет объект операции с приоритетом, который Вы присвоили объекту через queuePriority свойство.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выборки одна запись асинхронно от текущей базы данных.

    Объявление

    Swift

    func fetchRecordWithID(_ recordID: CKRecordID!, completionHandler completionHandler: ((CKRecord!, NSError!) -> Void)!)

    Objective C

    - (void)fetchRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecord *record, NSError *error))completionHandler

    Параметры

    recordID

    ID записи Вы хотите выбрать. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    record

    Требуемый рекордный объект. Если никакая такая запись не найдена, этот параметр nil.

    error

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

    Обсуждение

    Используйте этот метод для выборки записей, которые не являются срочными к выполнению приложения. Этот метод выбирает запись с низким приоритетом, который может вызвать задачу выполниться после задач более высокого приоритета. Для выборки записей более срочно создайте a CKFetchRecordsOperation объект с желаемым приоритетом. Можно также использовать тот объект операции для выборки многократных записей одновременно.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Сохраняет одну запись асинхронно на текущую базу данных.

    Объявление

    Swift

    func saveRecord(_ record: CKRecord!, completionHandler completionHandler: ((CKRecord!, NSError!) -> Void)!)

    Objective C

    - (void)saveRecord:(CKRecord *)record completionHandler:(void (^)(CKRecord *record, NSError *error))completionHandler

    Параметры

    record

    Запись для сохранения. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    record

    Рекордный объект Вы попытались сохранить.

    error

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

    Обсуждение

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

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Удаляет указанную запись асинхронно из текущей базы данных.

    Объявление

    Swift

    func deleteRecordWithID(_ recordID: CKRecordID!, completionHandler completionHandler: ((CKRecordID!, NSError!) -> Void)!)

    Objective C

    - (void)deleteRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecordID *recordID, NSError *error))completionHandler

    Параметры

    recordID

    ID записи Вы хотите удалить. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    recordID

    ID записи Вы попытались удалить.

    error

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

    Обсуждение

    Если на запись сослались другие записи, удаление записи может инициировать дополнительные удаления. Этот метод сообщает только о ID записи, которую Вы попросили удалять. CloudKit не сообщает об удалениях, инициированных путем владения отношениями между записями.

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выборки все рекордные зоны асинхронно от текущей базы данных.

    Объявление

    Swift

    func fetchAllRecordZonesWithCompletionHandler(_ completionHandler: (([AnyObject]!, NSError!) -> Void)!)

    Objective C

    - (void)fetchAllRecordZonesWithCompletionHandler:(void (^)(NSArray *zones, NSError *error))completionHandler

    Параметры

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    zones

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

    error

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

    Обсуждение

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

    Этот метод выбирает рекордные зоны с низким приоритетом, который может вызвать задачу выполниться после задач более высокого приоритета. Для выборки рекордных зон более срочно создайте a CKFetchRecordZonesOperation объект с желаемым приоритетом.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выборки одна рекордная зона асинхронно от текущей базы данных.

    Объявление

    Swift

    func fetchRecordZoneWithID(_ zoneID: CKRecordZoneID!, completionHandler completionHandler: ((CKRecordZone!, NSError!) -> Void)!)

    Objective C

    - (void)fetchRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZone *zone, NSError *error))completionHandler

    Параметры

    zoneID

    ID рекордной зоны. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    zone

    Требуемый CKRecordZone объект или nil если объект не найден или не может быть получен.

    error

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

    Обсуждение

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

    Этот метод выбирает рекордную зону с низким приоритетом, который может вызвать задачу выполниться после задач более высокого приоритета. Для выборки рекордной зоны более срочно создайте a CKFetchRecordZonesOperation объект с желаемым приоритетом. Можно также использовать тот объект операции для выборки многократных рекордных зон одновременно.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Сохраняет одну рекордную зону асинхронно к текущей базе данных.

    Объявление

    Swift

    func saveRecordZone(_ zone: CKRecordZone!, completionHandler completionHandler: ((CKRecordZone!, NSError!) -> Void)!)

    Objective C

    - (void)saveRecordZone:(CKRecordZone *)zone completionHandler:(void (^)(CKRecordZone *zone, NSError *error))completionHandler

    Параметры

    zone

    Зона Вы хотите сохранить к базе данных. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    zone

    CKRecordZone возразите, что Вы попытались сохранить.

    error

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

    Обсуждение

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

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Удаляет одну рекордную зону (и ее содержание) асинхронно от текущей базы данных.

    Объявление

    Swift

    func deleteRecordZoneWithID(_ zoneID: CKRecordZoneID!, completionHandler completionHandler: ((CKRecordZoneID!, NSError!) -> Void)!)

    Objective C

    - (void)deleteRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZoneID *zoneID, NSError *error))completionHandler

    Параметры

    zoneID

    ID зоны Вы хотите удалить. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    zoneID

    ID зоны, которую Вы попытались удалить.

    error

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

    Обсуждение

    Удаление зоны постоянно удаляет зону и все записи в той зоне. После удаления зоны можно использовать тот же ID для создания новой пустой зоны.

    Этот метод удаляет рекордную зону с низким приоритетом, который может вызвать задачу выполниться после задач более высокого приоритета. Для удаления рекордной зоны более срочно создайте a CKModifyRecordZonesOperation объект с желаемым приоритетом. Можно также использовать тот объект операции для удаления многократных рекордных зон одновременно.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выборки вся подписка возражают асинхронно от текущей базы данных.

    Объявление

    Swift

    func fetchAllSubscriptionsWithCompletionHandler(_ completionHandler: (([AnyObject]!, NSError!) -> Void)!)

    Objective C

    - (void)fetchAllSubscriptionsWithCompletionHandler:(void (^)(NSArray *subscriptions, NSError *error))completionHandler

    Параметры

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    subscriptions

    Массив CKSubscription объекты. Если объекты подписки не могут быть получены, массив пуст.

    error

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

    Обсуждение

    Используйте этот метод для определения местоположения подписок в текущей базе данных. Подписки представляют персистентные запросы на сервере. Когда записи изменяются, подписка может использоваться для предупреждения приложения.

    Этот метод выбирает объекты подписки с низким приоритетом, который может вызвать задачу выполниться после задач более высокого приоритета. Для выборки подписок более срочно создайте a CKFetchSubscriptionsOperation объект с желаемым приоритетом.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Выборки одна подписка возражают асинхронно от текущей базы данных.

    Объявление

    Swift

    func fetchSubscriptionWithID(_ subscriptionID: String!, completionHandler completionHandler: ((CKSubscription!, NSError!) -> Void)!)

    Objective C

    - (void)fetchSubscriptionWithID:(NSString *)subscriptionID completionHandler:(void (^)(CKSubscription *subscription, NSError *error))completionHandler

    Параметры

    subscriptionID

    ID объекта подписки. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    subscription

    Требуемая подписка возражает или nil если объект не найден или не может быть получен.

    error

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

    Обсуждение

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

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Сохраняет один объект подписки асинхронно к текущей базе данных.

    Объявление

    Swift

    func saveSubscription(_ subscription: CKSubscription!, completionHandler completionHandler: ((CKSubscription!, NSError!) -> Void)!)

    Objective C

    - (void)saveSubscription:(CKSubscription *)subscription completionHandler:(void (^)(CKSubscription *subscription, NSError *error))completionHandler

    Параметры

    subscription

    Объект подписки Вы хотите сохранить к базе данных. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    subscription

    Объект подписки Вы попытались сохранить.

    error

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

    Обсуждение

    Используйте этот метод для сохранения подписки к базе данных так, чтобы это могло начать наблюдать за изменениями.

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Удалите один объект подписки асинхронно из текущей базы данных.

    Объявление

    Swift

    func deleteSubscriptionWithID(_ subscriptionID: String!, completionHandler completionHandler: ((String!, NSError!) -> Void)!)

    Objective C

    - (void)deleteSubscriptionWithID:(NSString *)subscriptionID completionHandler:(void (^)(NSString *subscriptionID, NSError *error))completionHandler

    Параметры

    subscriptionID

    ID подписки возражает для удаления. Если этот параметр, этот метод выдает исключение nil.

    completionHandler

    Блок для выполнения с результатами. Ваш блок должен быть способен к работе любого потока приложения и взять следующие параметры:

    subscriptionID

    ID подписки возражает, что Вы попытались удалить.

    error

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

    Обсуждение

    Удаление подписки мешает ему наблюдать ее измененные записи и отправить предупреждения.

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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