Ios 发布更新记录

Ios 发布更新记录,ios,swift,cloudkit,ckrecord,Ios,Swift,Cloudkit,Ckrecord,我无法保存已保存的记录。recordToSave是从服务器下载的CKRecord。有可能更新吗 recordTosave.setValue("cat", forKey: "animal") let publicData = CKContainer.defaultContainer().publicCloudDatabase publicData.saveRecord(recordToSave, completionHandler:{(record: CKRecord?, error: NSE

我无法保存已保存的记录。recordToSave是从服务器下载的CKRecord。有可能更新吗

recordTosave.setValue("cat", forKey: "animal")

let publicData = CKContainer.defaultContainer().publicCloudDatabase

publicData.saveRecord(recordToSave, completionHandler:{(record: CKRecord?, error: NSError?) in
    if error == nil{  

    }else{
        print(error.debugDescription)
    }
})

无法插入cloudkit中已存在的记录。您可以使用CKModifyRecordsOperation修改记录。使用记录ID获取记录,然后通过修改操作进行更新

let recordIDToSave = CKRecordID(recordName: "recordID")
let publicData = CKContainer.defaultContainer().publicCloudDatabase

publicData.fetchRecordWithID(recordIDToSave) { (record, error) in

    if let recordToSave =  record {

        //Modify the record value here
        recordToSave.setObject("value", forKey: "key")

        let modifyRecords = CKModifyRecordsOperation(recordsToSave:[recordToSave], recordIDsToDelete: nil)
        modifyRecords.savePolicy = CKRecordSavePolicy.AllKeys
        modifyRecords.qualityOfService = NSQualityOfService.UserInitiated
        modifyRecords.modifyRecordsCompletionBlock = { savedRecords, deletedRecordIDs, error in
            if error == nil {
                print("Modified")
            }else {
                print(error)
            }
        }
        publicData.addOperation(modifyRecords)
    }else{
        print(error.debugDescription)
    }
}

无法插入cloudkit中已存在的记录。您可以使用CKModifyRecordsOperation修改记录。使用记录ID获取记录,然后通过修改操作进行更新

let recordIDToSave = CKRecordID(recordName: "recordID")
let publicData = CKContainer.defaultContainer().publicCloudDatabase

publicData.fetchRecordWithID(recordIDToSave) { (record, error) in

    if let recordToSave =  record {

        //Modify the record value here
        recordToSave.setObject("value", forKey: "key")

        let modifyRecords = CKModifyRecordsOperation(recordsToSave:[recordToSave], recordIDsToDelete: nil)
        modifyRecords.savePolicy = CKRecordSavePolicy.AllKeys
        modifyRecords.qualityOfService = NSQualityOfService.UserInitiated
        modifyRecords.modifyRecordsCompletionBlock = { savedRecords, deletedRecordIDs, error in
            if error == nil {
                print("Modified")
            }else {
                print(error)
            }
        }
        publicData.addOperation(modifyRecords)
    }else{
        print(error.debugDescription)
    }
}

我们需要更多的细节。printerror.debugDescription输出什么?如果这不起作用,请尝试打印错误。另外,您如何创建/检索要保存的记录?我们需要更多详细信息。printerror.debugDescription输出什么?如果这不起作用,请尝试打印错误。另外,您是如何创建/检索recordTosave的?不幸的是,它给了我一个错误:可选。我发现了这个错误,无论如何都要感谢Kiruthika。你的代码是正确的,解释得很好。感谢它,修改记录的好方法:不幸的是,它给了我一个错误:可选。我发现了这个错误,不管怎样,多亏了Kiruthika。你的代码是正确的,解释得很好。欣赏它,修改记录的好方法: