У меня проблема с обновлением записей CloudKit. То, что я хочу достичь, - это возможность разрешить пользователям голосовать за книгу, щелкнув строку tableview. Этот вид таблицы в настоящее время заполнен с использованием записей из данных облака. Я застрял, когда хочу получить запись (т. Е. Выбранную таблицу таблицы), и увеличил ее столбцы voteCount на 1, а затем сохранил ее обратно в облако и перезагрузил данные в виде таблицы.SWIFT/CloudKit - Обновление записи и сохранение ее обратно в контейнер
В настоящее время я получение записей с помощью:
booksIncludedInVote = []
let cloudContainer = CKContainer.defaultContainer()
let publicDatabase =CKContainer.defaultContainer().publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Book", predicate: predicate)
let queryOperation = CKQueryOperation(query: query)
queryOperation.desiredKeys = ["name", "author", "image", "description", "voteCount"]
queryOperation.queuePriority = .VeryHigh
queryOperation.resultsLimit = 50
queryOperation.recordFetchedBlock = { (record:CKRecord!) -> Void in
if let restaurantRecord = record {
self.booksIncludedInVote.append(restaurantRecord)
}
Можете ли вы помочь мне обновить конкретную запись, а затем отправить его обратно в облако?
Спасибо за ваш вклад Эдвин - Я обновил свой код в настоящее время выборки и затем SetObject текущей записи. Однако я получаю ошибку «WRITE operation not allowed». Вы знаете, как обойти это? – Lindsey
Это может быть несколько вещей. На панели управления CloudKit вы можете установить разрешения для каждого типа записи. Существует матрица, в которой вы можете установить 9 разных прав. создавать, читать, писать против мира, аутентифицироваться, создавать. По умолчанию кто-то может изменить только собственные записи. Вероятно, вам придется изменить это на аутентификацию. –
Отлично - спасибо Эдвину, вместе оба ваши ответы помогли мне обновить записи. – Lindsey