这可能与默认的CoreData有关,但由于我使用的是MagicallRecord,我将在该上下文中提出问题。
我有几个不同的地方可以保存对象。更具体地说,一个地方的物体和另一个地方的孩子。
对象:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
NSLog(@"saving objects");
NSArray *objects = // fetch objects with localContext
// change some data on objects
}];
儿童:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
NSLog(@"saving some children");
NSArray *children = // fetch objects with localContext
// change some data on children
}];
没有什么比这更复杂,只是有几个不同的地方我想在后台线程中进行一些修改。
使用MagicalRecord指定合并策略时,正确的方法是什么?我只是在每个localContext上设置它吗?
localContext.mergePolicy = // Whatever merge policy I want
或者我应该设置合并策略以在我的应用程序中使用? IE现在我的合并政策总是一样的。我知道可以改变,所以我确信正确的答案是为每个localContext设置合并策略。
但是我没有看到很多关于与MagicalRecord合并政策的例子或问题,这让我感到疑惑。
答案 0 :(得分:1)
您希望在更改合并的上下文中设置合并策略。如果您使用默认上下文,则应为您设置这些合并策略。它还取决于您如何创建上下文。如果它们不是通过父/子关系相关的,那么您必须手动设置观察处理以将这些更改从一个上下文合并到另一个上下文。 MR有一两个帮手可以让这件事变得更容易。