Почему я не могу запросить CloudKit из Xcode или CloudKit Dashboard? - PullRequest
0 голосов
/ 05 февраля 2019

Когда я пытаюсь сделать запрос CloudKit из CloudKit Dashboard, я получаю сообщение об ошибке:

При запросе типа «Ввод» возникла проблема.

метод аутентификации не найден

Когда я пытаюсь запросить те же записи из кода в XCode, я получаю сообщение об ошибке из объекта ошибки в свойстве queryCompletionBlock моей операции запроса:

операция не может быть завершена.(Ошибка CKErrorDomain 4.)

Где найти значение ошибки 4?

Вот код, который напечатал сообщение об ошибке в окне отладки:

let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: DatabaseNameStrings.recordTypeEntry, predicate: predicate) // DatabaseNameStrings.recordTypeEntry = "Entry"
let sortDescriptor = NSSortDescriptor(key: DatabaseNameStrings.recordFieldKeyCreationDate, ascending: true)
query.sortDescriptors = [sortDescriptor]
let queryOperation = CKQueryOperation(query: query)
queryOperation.database = container.privateCloudDatabase
queryOperation.desiredKeys = [DatabaseNameStrings.fieldNameText] // DatabaseNameStrings.fieldNameText = "text"
queryOperation.recordFetchedBlock = {
    (record: CKRecord) in
    let entry = Entry(ckRecord: record)
    self.entries.append(entry)
}
queryOperation.queryCompletionBlock = {
    (cursor: CKQueryOperation.Cursor?, error: Error?) in
    if let error = error {
        print(error.localizedDescription) // The operation couldn’t be completed. (CKErrorDomain error 4.)
    } else {
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }
        if let cursor = cursor {
            let innerQueryOperation = CKQueryOperation(cursor: cursor)
            innerQueryOperation.desiredKeys = queryOperation.desiredKeys
            innerQueryOperation.recordFetchedBlock = queryOperation.recordFetchedBlock
            innerQueryOperation.queryCompletionBlock = queryOperation.queryCompletionBlock
            queryOperationQueue.addOperation(queryOperation)
        } else {
            DispatchQueue.main.async {
                self.tableView.reloadData()
            }
        }
    }
}
queryOperationQueue.addOperation(queryOperation)

1 Ответ

0 голосов
/ 05 февраля 2019

Все заработало, и я ничего не сделал, чтобы это исправить.

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