托管对象上下文有变化 - 核心数据

时间:2013-12-12 08:11:51

标签: ios objective-c core-data nsmanagedobjectcontext

我有一个iOS应用程序,用户可以浏览几个不同的屏幕并输入数据。这些字段的输入存储在Core Data中。还有其他屏幕只显示此数据。

当应用程序连接到我的后端以获取数据时,它会遍历托管对象并根据需要更新它们。更改属性中的值后,我在共享实例(单例)上调用save。

这是导致失败的代码:

if ([self.managedObjectContext hasChanges] && ![self.managedObjectContext save:&error]) {
  abort();
}

我已尝试在Stack Overflow和Google上研究此问题。我想我只是没有理解这个概念。我正在使用类的单例来进行保存。那么“背景”正在发生变化,应该采取什么措施来解决它?请指教! :(

编辑:这是控制台中的转储:

    "NSMergeConflict (0x16235580) for NSManagedObject (0x162a7bf0) with objectID   
'0x16460a10 <x-coredata://C5197C6E-6154-453D-84DC-BBD3F41B8D98/Comment/p69>' with 
oldVersion = 3 and newVersion = 4 and old object snapshot = {\n    comment = \"\";\n    
commentsOpen = 0;\n    createdOn = \"2013-12-13 23:21:05 +0000\";\n    imageURLList = \"
<null>\";\n    modifiedOn = \"2013-12-13 23:23:32 +0000\";\n "0x162b69b0 <x-
coredata://C5197C6E-6154-453D-84DC-BBD3F41B8D98/NewsArticle/p69>\";\n    snapshot = 
\"0x161698a0 <x-coredata://C5197C6E-6154-453D-84DC-BBD3F41B8D98/Snapshot/p6>\";\n    
snapshotID = \"a3120864-5b5d-4dff-8901-6fa84279700c\";\n} and new cached row = {\n    
comment = \"\";\n    commentsOpen = 0;\n    createdOn = \"2013-12-13 23:21:05 +0000\";\n    
imageURLList = \"<null>\";\n    modifiedOn = \"2013-12-13 23:23:32 +0000\";\n "0x162b6350 
<x-coredata://C5197C6E-6154-453D-84DC-BBD3F41B8D98/NewsArticle/p69>\";\n    snapshot = 
\"0x162715f0 <x-coredata://C5197C6E-6154-453D-84DC-BBD3F41B8D98/Snapshot/p6>\";\n    
snapshotID = \"a3120864-5b5d-4dff-8901-6fa84279700c\";\n}",

0 个答案:

没有答案