如何通过CKModifyRecordsOperation更新CKRecord?

问题描述 投票:0回答:1

我知道用ID更新CKRecord只是使用fetchRecordWithID并使用CKModifyRecordsOperation,如下所示。

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)
    }
}

但是我是否可以在没有fetchRecord的情况下更新记录?

ios swift icloud cloudkit ckmodifyrecordsoperation
1个回答
0
投票

我找到了解决方案。

只需将CKModifyRecordsOperation操作的保存策略设置为changedKeys。

© www.soinside.com 2019 - 2024. All rights reserved.