何时适合使用NSMergePolicy子类?

Gre*_*gor 5 core-data ios

我编写了一个小型框架,用于将CoreData对象同步到服务器上的SQL后端,并且我使用的子类NSManagedObject将与同步相关的元数据(例如:)添加someObject.sync_status = needsSync到每个对象。同步例程被定期调用,并在后台在不涉及用户的情况下在单独的上下文中更改此元数据。

如果在用户积极地编辑和保存对象时调用了同步例程NSManagedObjectContext,则用户的元数据版本可能会过时,并且会与保存在后台上下文中的当前元数据发生冲突。我的解决方案是侦听并合并来自后台上下文保存通知的更改,尽管我希望避免在框架之外进行这种复杂性。

我想知道自定义合并策略是否会通过忽略用户的元数据属性版本来在框架层解决此问题,而所有其他属性将NSMergePolicyType照常使用(默认设置NSErrorMergePolicyType对我来说可能仍然是最有用的) 。我试图继承NSMergePolicy和重写resolveConflicts:error:,但是我无法弄清楚它应该如何工作,我在网上发现了零个例子。

我的问题是:
-我是否有正确的合并政策构想?
-如果是这样,如何解决resolveConflicts:error:覆盖内的冲突?

谢谢!