如何覆盖Swift中的CloudKit现有数据?
问题描述:
我必须覆盖CloudKit中的现有数据如何覆盖Swift中的CloudKit现有数据?
我试图使用saveRecord
,它并不适合我。
就我而言,我只需要覆盖单个数据。
那么我该怎么办?
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
if locationEnable == true {
if loaded == true {
let location = locations.last! as CLLocation
let location2 = locations.last!
var a:String?
if(Data.count != 0){ a = Data[0].valueForKey("identity") as? String}
else {a = Data3!.valueForKey("identity") as? String}
let id = CKRecordID(recordName: a!)
let locationRecord = CKRecord(recordType: "Driver", recordID: id)
locationRecord.setObject(location2, forKey: "X")
locationRecord.setObject(a!, forKey: "Identity")
AddRecordToCloud(locationRecord)
}
if UIApplication.sharedApplication().applicationState != .Active {
print("Background Updating")
}
}
}
func AddRecordToCloud(record:CKRecord){
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
publicDatabase.saveRecord(record, completionHandler: { (record:CKRecord?, error:NSError?) -> Void in
if(error != nil){print("error:\(error)")}
else {print("saving")}
})
}
这里是错误:
error:Optional(<CKError 0x7fb858f5ba80: "Server Record Changed" (14/2004); server message = "record to insert already exists";
答
你必须获取该记录,然后更改其中的数据并保存相同的记录了。
+0
是的,我确实做到了同样的事情ü说 –
+0
和我得到这个错误 错误:可选(“错误保存记录
使用相关代码和有关您遇到问题的详细信息更新您的问题。 – rmaddy
请不要复制[你自己的帖子。](http://stackoverflow.com/questions/36907061/how-to-keep-updating-cloud-kit-record-in-swift) – NobodyNada
我刚刚更新了谢谢:) –