Почему я не могу запросить CloudKit из Xcode или CloudKit Dashboard?
Когда я пытаюсь сделать запрос 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 ответ
Это начало работать, и я ничего не сделал, чтобы это исправить.