如何覆盖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

使用相关代码和有关您遇到问题的详细信息更新您的问题。 – rmaddy

+0

请不要复制[你自己的帖子。](http://stackoverflow.com/questions/36907061/how-to-keep-updating-cloud-kit-record-in-swift) – NobodyNada

+0

我刚刚更新了谢谢:) –

你必须获取该记录,然后更改其中的数据并保存相同的记录了。

+0

是的,我确实做到了同样的事情ü说 –

+0

和我得到这个错误 错误:可选(“错误保存记录 to server:保护数据不匹配“) –