如何在magicrecord中指定合并策略

Posted

技术标签:

【中文标题】如何在magicrecord中指定合并策略【英文标题】:How to specify merge policy in magicalrecord 【发布时间】:2014-12-16 01:20:16 【问题描述】:

这可能与默认的 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 合并的示例或问题,这真的让我感到疑惑。

【问题讨论】:

【参考方案1】:

您希望在合并更改的上下文中设置合并策略。如果您使用默认上下文,则应为您设置这些合并策略。它还取决于您如何创建上下文。如果它们不通过父/子关系关联,那么您必须手动设置观察处理以将这些更改从一个上下文合并到另一个上下文。 MR 有一两个帮手可以让这项工作变得更轻松。

【讨论】:

它们是相关的(我认为)只是默认情况下我使用 MR 的方式。我从未在默认上下文中设置合并策略。自动设置什么?设置它的助手是什么?如果我使用给我一个 localContext 的后台保存,该本地上下文是否会合并回默认上下文?

以上是关于如何在magicrecord中指定合并策略的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CodeNameOne 项目中指定 abiFilters?

coredata + MagicRecords,如何在后台查找All

如何在类型提示中指定函数类型?

如何在 HibernateJpaAutoConfiguration 中指定 packagesToScan?

如何在 web.config 中指定根 (/) 位置?

如何在 RSACryptoServiceProvider .NET 类中指定公钥