Невозможно получить записи в пользовательской зоне sharedCloudDatabase с помощью CloudKit - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь получить записи 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">

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

1 Ответ

0 голосов
/ 08 июня 2019

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

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

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

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