2016-04-28 40 views
-1

我必須覆蓋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

是的,我確實做到了同樣的事情ü說 –

+0

和我得到這個錯誤 錯誤:可選(「錯誤保存記錄 to server:保護數據不匹配「) –