使用iCloud进行核心数据。同步问题。 (MacOS vs iOS - 冲突)

时间:2011-12-26 11:56:49

标签: ios core-data icloud

我在使用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;
})

有人知道如何解决此类冲突吗?谢谢。

1 个答案:

答案 0 :(得分:2)

建议您在托管对象上下文中指定合并策略:

moc.mergePolicy = [[NSMergePolicy alloc] 
  initWithMergeType:NSMergeByPropertyObjectTrumpMergePolicyType];

还有other merge policies,选择适合您应用的那个。