Я пытаюсь обновить существующую запись в CloudKit, но я создаю новую запись вместо изменения значения! Здесь код:Как обновить поле в типе записи в CloudKit?
func pairing(phone: String, ctid: String) {
ctUsers = [CKRecord]()
print("THE PHONE IS: \(phone)\n")
let publicData = CKContainer.default().publicCloudDatabase
let predicate = Predicate(format: "phone == %@", phone)
let query = CKQuery(recordType: "Elder", predicate: predicate)
publicData.perform(query, inZoneWith: nil) { (results: [CKRecord]?, error: NSError?) -> Void in
if error != nil {
print(error?.localizedDescription)
}
if let users = results {
self.ctUsers = users
print("\nHow many users in cloud: \(self.ctUsers.count)\n")
if self.ctUsers.count != 0 {
let user = CKRecord(recordType: "Elder")
user["careTakerId"] = ctid
let publicData = CKContainer.default().publicCloudDatabase
publicData.save(user, completionHandler: { (record: CKRecord?, error: NSError?) in
if error == nil {
DispatchQueue.main.asynchronously(execute: {() -> Void in
print("CARETAKER updated successfully\n")
})
}
else {
print("\nHUEHUEHUEHUE\n")
print(error?.localizedDescription)
}
})
}
else {
print("\nELDER ISN'T IN CLOUD\n")
print(error?.localizedDescription)
}
}
}
}
Краткого объяснение: во-первых, я получаю Старший номер телефона (каждый старейшина имеет другой телефон) и проверить, если этот номер телефона в облаке. Если это так, то обновляет careTakerId ЭТОГО старца, в частности!
Здесь вы можете увидеть, что создание этого «No Name» запись и запись выше остается неизменной
Любые идеи?
О, и не возражаю синтаксис, я использую Xcode 8 бета-2 –