我在使用CoreData和iCloud时遇到了一些问题。我使用了苹果开发者论坛(iCloud)中的示例 - IPhoneCoreDataRecipes项目,该项目通过iCloud表示与CoreData的工作。它工作正常,但出现了一些冲突,并非所有实体都在同步。
我可以在日志中看到以下警告:
Warning>: +[PFUbiquityRecordImportConflict createTransactionLogForTransactionEntry:withError:](607): CoreData: Ubiquity: Unable to find transaction log for entry: <PFUbiquityTransactionEntry: 0x68b9a60> (entity: PFUbiquityTransactionEntry; id: 0x68c5d50 <x-coredata://697F667C-7541-43E7-B21B-5362D165537B/PFUbiquityTransactionEntry/p2> ; data: {
actingPeer = "0x1526e0 <x-coredata://697F667C-7541-43E7-B21B-5362D165537B/PFUbiquityPeer/p1>";
globalIDStr = "com.appmania.dreambookdata.coredata:DreamHistory:p1:mobile.99829CE6-D497-590F-B2F8-795CFFC84CCB";
knowledgeVectorString = "mobile.99829CE6-D497-590F-B2F8-795CFFC84CCB:1";
localIDStr = "x-coredata://D45E85ED-A2B7-48AC-96BF-6B2C64812656/DreamHistory/p1";
storeMetadata = "0x12d4a0 <x-coredata://697F667C-7541-43E7-B21B-5362D165537B/PFUbiquityStoreMetadata/p1>";
transactionDate = "2011-12-01 08:00:13 +0000";
transactionLogFilename = "7C9AD5E3-457E-4E2B-8F1C-A7D8878E5BDB.1.cdt";
transactionNumber = 1;
transactionTypeNum = 0;
})
有人知道如何解决此类冲突吗?谢谢。
答案 0 :(得分:2)
建议您在托管对象上下文中指定合并策略:
moc.mergePolicy = [[NSMergePolicy alloc]
initWithMergeType:NSMergeByPropertyObjectTrumpMergePolicyType];
还有other merge policies,选择适合您应用的那个。