【发布时间】:2013-07-23 06:01:01
【问题描述】:
我在 Core Data 中使用并发。像this 这样的Apple 文档经常告诉我,上下文的同步取决于我的应用程序的语义。而且我找不到如何合并UIManagedObjectContexts 的具体示例。
因此,在我的应用程序中,UIManagedObject 在不同的上下文中可能具有不同的属性值。我需要通过替换对象或更新其属性来合并上下文。
这是我的代码:
- (void)__saveToMainContext
{
if ([_context_ hasChanges])
{
NSError *error = nil;
if (![_context_ save:&error])
{
if (error.code == NSManagedObjectMergeError)
{
for (NSMergeConflict* conflict in [[error userInfo] objectForKey:@"conflictList"])
{
[_context_ refreshObject:[conflict sourceObject] mergeChanges:YES];
}
}
}
}
}
但是这个方法会创建重复的对象。
【问题讨论】:
标签: ios objective-c core-data concurrency nsmanagedobjectcontext