Поиск…


замечания

Поддерживаемые типы

  • NSData
  • NSDate (Дата)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (массив)
  • CLLocation
  • CKReference
  • CKAsset

Подробнее

Панель управления CloudKit

Регистрация приложения для использования с CloudKit

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

Выполните шаги, чтобы предоставить доступ к iCloud из вашего приложения:

1- Выберите проект в Навигаторе проектов, а затем откройте вкладку «Общие».

2- В разделе «Идентификация» установите идентификатор Apple разработчика в раскрывающемся меню «Команда». (Если он недоступен, добавьте его в меню Xcode -> Настройки -> Учетные записи.

3- Перейдите на вкладку «Возможности» в свойствах проекта и включите iCloud. Затем выберите «Key-Value Storage» и «CloudKit».

введите описание изображения здесь

4- Убедитесь, что эти элементы отмечены:

введите описание изображения здесь

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

Использование облачной панели CloudKit

Все записи, созданные с использованием кода CloudKit, могут быть просмотрены, отредактированы и даже удалены в CloudKit Dashboard. Чтобы открыть панель CloudKit, перейдите сюда .

На панели приборов есть несколько частей:

  • Типы записей (которые будут рассмотрены ниже)
  • Роли безопасности (где вы можете устанавливать базы данных как общедоступные или частные)
  • Типы подписки (которые ваше приложение может регистрировать для уведомлений Apple Push (APN), чтобы уведомить вас, когда запись будет изменена)

Типы записей

Здесь вы получаете список всех существующих типов записей в приложении. Когда вы впервые открываете панель CloudKit Dashboard для приложения, есть тип записи «Пользователи», который вы можете использовать, или просто удалить его и использовать самостоятельно.

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

Сохранение данных в CloudKit

Чтобы сохранить дату в CloudKit, мы должны сделать:

  • CKRecordID (ключ вашей уникальной записи)
  • CKRecord (который включает данные)

Создание ключа записи

Чтобы каждый уникальный идентификатор записи был уникальным, мы используем текущую временную метку , которая уникальна. Мы получаем NSDate метку, используя метод timeIntervalSinceReferenceDate() . Он находится в форме ###. ### (# - числа), который мы будем использовать целую часть. Для этого разделим строку:

стриж

let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])

Создание записи

Чтобы сделать запись, мы должны указать тип записи (объясненный в разделе «Использование CloudKit Dashboard») как «Пользователи», идентификатор, который мы сделали сейчас, и данные. Здесь мы добавим образец текста, изображение и текущую дату в запись:

стриж

let record = CKRecord(recordType: "Users", recordID: recordID)
record.setObject("Some Text", forKey: "text")
record.setObject(CKAsset(fileURL: someValidImageURL), forKey: "image")
record.setObject(NSDate(), forKey: "date")

Objective-C

CKRecord *record = [[CKRecord alloc] initWithRecordType: "Users" recordID: recordID];
[record setObject: "Some Text" forKey: "text"];
[record setObject: [CKAsset assetWithFileURL: someValidImageURL] forKey: "image"];
[record setObject: [[NSDate alloc] init] forKey: "date"];

Заметка

Здесь мы не добавляли UIImage непосредственно в запись, потому что, как упоминалось в Заметках, формат изображения напрямую не поддерживается в CloudKit, поэтому мы преобразовали UIImage в CKAsset .

Доступ к контейнеру

стриж

let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase

Сохранение записей в базе данных CloudKit

стриж

database.saveRecord(record, completionHandler: { (_, error) -> Void in
    print(error ?? "")
})


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow