合并冲突核心数据

Posted

技术标签:

【中文标题】合并冲突核心数据【英文标题】:Merge Conflict Core Data 【发布时间】:2018-07-08 19:16:11 【问题描述】:

在合并 Core Data 策略时需要一些建议...有时我会收到此错误 NSMergeConflict for NSManagedObject with ObectID... 。我尝试在线搜索,发现我需要在 appDelegate 中删除我的 FatalError 方法并使用合并策略来解决此类问题....我阅读了苹果的文档并需要一些确认。我目前的流程是,我调用一个 API,无论我得到什么结果,我都将它们保存到 CoreData,然后获取它们并将它们显示在我的 tableView 上......这些结果首先保存到核心数据,因为它们将在何时显示没有互联网。当有互联网时,我删除所有以前的对象并重复我的显示过程。有时我会得到 FatalError 导致崩溃。我使用哪种合并策略?

    mergeByPropertyObjectTrump mergeByPropertyStoreTrump 覆盖 回滚

我得到的错误: Fatal error: Unresolved error Error Domain=NSCocoaErrorDomain Code=133020 "Could not merge changes." UserInfo=conflictList=( "NSMergeConflict (0x115c27ed0) for NSManagedObject (0x109f129b0) with objectID '0xd000000000440000 <x-coredata://4D2070B8-C99C-49F5-A3B5-7E8E360ECA3A/CDPortfolio/p17>' with oldVersion = 1 and newVersion = <deleted> and old object snapshot = \n currentValue = \"49141.4\";\n folioNo = 12345;\n growthPercentage = \"5109904.532582804\";\n investmentAmount = 5000;\n isExpanded = 0;\n minRedemptionAmount = 500;\n noOfUnits = 100;\n schemeCategory = 54;\n schemeHouse = 97;\n schemeMasterID = 1000390;\n schemeNAV = \"491.414\";\n schemeName = \"HDFC Taxsaver (G)\";\n schemeReturn = \"1:4.1782,2:17.2281,3:10.9636,5:17.9405,7:11.8873,10:13.5671\";\n", "NSMergeConflict (0x109f1a340) for NSManagedObject (0x109f128e0) with objectID '0xd000000000400000 <x-coredata://4D2070B8-C99C-49F5-A3B5-7E8E360ECA3A/CDPortfolio/p16>' with oldVersion = 1 and newVers

【问题讨论】:

【参考方案1】:

合并策略是邪恶的;它要求核心数据删除您的一些数据。通过仅以 SINGLE 同步方式写入核心数据,首先避免写入冲突要好得多。这里有关于如何设置的完整说明:https://***.com/a/42745378/1143046

【讨论】:

以上是关于合并冲突核心数据的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 合并冲突显示托管对象版本更改而不是数据

GIT 中的 Composer 和 composer.lock 和合并冲突

iOS - 核心数据模型与邮件框架冲突?

使用 iCloud 解决核心数据中的冲突

核心数据合并行为

核心数据合并政策