通过iOS教程,似乎Simperium的工作方式与iCloud Core Data非常相似,它在后台透明地同步,并将更改写入底层持久存储区,并合并到当前托管对象上下文中的更改。我相信这是待办事项列表示例应用程序的工作方式,因为NSFetchedResultsController会自动检测其托管对象上下文中的更改。Simperium如何处理自定义验证逻辑?
但是我的问题是,是否有任何API用于检测可能发生的冲突?这实际上是一个两部分问题。首先,Simperium无法处理并向应用程序报告以定制方式处理的任何冲突?其次,假设我有一个约束,它实际上是作为核心数据验证方法实现的,例如,确保子项数量的总和等于他们父项的数量(不要问我为什么,它是只是它应该如何在我的应用程序中),当Simperium从多个设备同步更改时,可能会出现这样的情况:两个设备都会编辑子项目,以使子项目的总和不再等于父项目的数量。 Simperium会将无效数据写入我的永久性存储中吗? (即绕过我的核心数据验证)。或者,它是否会以某种方式向我报告验证错误,并让我解决应用程序内的冲突?
如果可以处理这些案例,我们很乐意使用Simperium。