我有以下情形,其中我要从JSON文件解析对象并将其存储到我的Core Data存储中。现在,我正在使用NSPersistentCloudKitContainer
,并且在其他设备上运行应用程序时,它还会解析JSON文件并将对象添加到Core Data。这导致对象重复。
现在我想知道是否有:
我尚未在项目中使用NSPersistentCloudKitContainer
,但是您可以通过在.xcdatamodel
中选择一个实体并将其属性之一添加为唯一约束来防止Core Data中的重复。通常情况下,一些ID字段之王。这样可以防止将重复的对象保存到存储中。
Re:CloudKit,如果您保存一个新的CKRecord
对象并手动分配一个CKRecordID
,则与ID匹配的容器中的所有内容都会被覆盖。当我为CloudKit容器添加种子时,或者当我想批量更新一堆可能已经存在匹配项的记录时,就会执行此操作。
let recordID = CKRecordID(recordName: "{manually set an ID}")
let record = CKRecord(recordType: "{your record type}", recordID: recordID)