У меня проблемы с удалением записей CloudKit. Я впервые имею дело с API, и, очевидно, есть два способа сделать это.
Сохранение записей прямолинейно и якобы удаляет их, за исключением того, что этого не происходит:
func deleteRecords() {
let recordID = record.recordID
publicDatabase.delete(withRecordID: recordID) { (recordID, error) in
guard let recordID = recordID else {
print(error!.localizedDescription)
return
}
print("Record \(recordID) was successfully deleted")
}
}
Я понимаю, что использование ckModifyRecordsOperation
- это еще один способ сделать это, но это пакетная операция. Мне нужно удалять только одну запись за раз. Вот мой код для этого:
func batchDelete() {
let recordIDsToDelete = [CKRecordID]()
let operation = CKModifyRecordsOperation(recordsToSave: nil, recordIDsToDelete: recordIDsToDelete)
operation.modifyRecordsCompletionBlock = { savedRecords, deletedRecordIDs, error in
// handle errors here
}
publicDatabase.add(operation)
print("Batch \(recordIDsToDelete) record was successfully deleted")
}
Ни один из них по отдельности или вместе не работает для меня.
deleteRecords
методе? И обратите внимание, что в вашемbatchDelete
методе вы не пытаетесь ничего удалить, поскольку вы передаете пустой массив. - person rmaddy   schedule 07.12.2017refreshTable
снова запрашивает базу данных и перезагружает таблицу, но строка, которую я удалил, появляется снова. Я спрашиваю, почему запись не удаляется из базы данных. - person davidoliverdoswell   schedule 08.12.2017cloudKit
до того, как узнали код. Другого способа создать его экземпляр нет. Это простой вопрос, почему это и this отличается тем, что они оба должны удалитьrecordIDs
, который я создаю с помощью (опять же, если вы использовалиcloudKit
:let record = CKRecord(recordType: "RecordName")
- person davidoliverdoswell   schedule 08.12.2017recordType
. Не обязательно знать, чтобы использовать методы, которые я предоставил. 2. Роли безопасности? Для удалений? 3. Название моего проекта, опять же, никакого отношения к удалениям. 4. Потому чтоpublicDatabase
- это место, где хранятся все данные в проекте. Нет профилей. Опять же, ничего общего с удалением записей. - person davidoliverdoswell   schedule 08.12.2017