我有一个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}",