Невозможно получить записи в пользовательской зоне sharedCloudDatabase с помощью CloudKit

Я пытаюсь получить записи CloudKit из пользовательской зоны в sharedDatabase.

Зона была создана правильно во время процесса обмена. Таким образом, я предполагаю, что зона является правильно разделяемой пользовательской зоной (она действительно находится в моей пользовательской информационной панели CloudKit, отображаемой в sharedDatabase контейнера по умолчанию).

Даже с этим простым фрагментом кода для извлечения записей:

func loadRecords() {
    let database = CKContainer.default().sharedCloudDatabase
    let query = CKQuery(recordType: "Items", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
    let operation = CKQueryOperation(query: query)
    let zone = CKRecordZone(zoneName: "MyCustomZone")
    var fetchedRecords: [CKRecord] = []

    database.perform(query, inZoneWith: zone.zoneID) { (records, error) in
        if let error = error {
            print(error)
        }
        else if let records = records, let firstRecord = records.first {
            print(firstRecord)
        }
    }
}

Я продолжаю получать эту ошибку: (извините, отсутствовал в предыдущем посте!)

<CKError 0x280950840: "Invalid Arguments" (12/1009); "Only shared zones can be accessed in the shared DB">

Есть идеи о том, что мне не хватает? Спасибо!

0 ответов

Верно, я наконец понял это. Благодаря этому дополнительному сообщению здесь, в Stackru: CloudKit Sharing

Вам действительно нужно получить свою настраиваемую зону. Но недостаточно дать ему имя, например "MyCustomZone", потому что в вашей общей базе данных он становится MyCustomZone: _acBxxxyyyzzz. Суффикс, добавленный CloudKit.

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

Другие вопросы по тегам