如何将 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
.
我需要迁移记录,因为 '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
.