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