如何将 ckrecords 从默认区域迁移到自定义区域?

How to migrate ckrecords from default zone to custom one?

我需要迁移记录,因为 'CKFetchRecordChangesOperation' 不适用于默认记录。我应该一个一个地迁移它还是有什么方法可以自动迁移?

是的,需要一一进行。您需要从旧区域获取所有内容,然后像这样为新的自定义区域创建一个新区域:

func newRecord(from record: CKRecord, newZone: CKRecordZone) -> CKRecord {

    let recordID = CKRecordID(recordName: record.recordID.recordName, zoneID: newZone.zoneID)
    let newRecord = CKRecord(recordType: "Goal", recordID: recordID)

    newRecord["startDate"] = record["startDate"]
    newRecord["endDate"] = record["endDate"]
    newRecord["hours"] = record["hours"]

    return newRecord
}

并保存到 CKDatabase.