Simperium iOS核心数据关系随机为空



我目前在使用CoreData的iOS上使用Simperium时遇到问题。在首次启动应用程序时,Simperium会尝试与CoreData同步。

有时它会100%正确工作,有时它会将一些关系设置为"零",尽管服务器上的Simperium数据没有这么说。除非我重新安装整个应用程序,否则这永远不会被修复。然后我再次掷骰子,看看在创业时这些关系是否正确联系在一起。

我在这里面找不到模式。零的关系是完全随机的。有时,这里的这个实体将没有关系,然后下次我尝试它时,另一个实体将没有任何关系。

所有关系都是可选的,我的CoreData文件没有任何问题。

有人遇到过这样的问题吗?我在2014年的一个bug中发现了完全相同的问题,但从那以后就一直存在。

我遇到的完全相同的问题可以在这里找到:https://github.com/Simperium/simperium-ios/issues/250

旁注:如果你读到这个问题,他还澄清说,他在Simperium同步时编辑CD文件有问题,导致没有关系。有人证实了这件事吗?如果是这样,这可能是我的问题。

此故障很可能是由您所描述的场景(在Simperium同步时编辑CD文件)引起的。

核心数据在内部使用锁来维护数据的完整性。直接访问sql存储可能会导致数据损坏(我假设您在模拟器中通过Firefox插件编辑文件,或者通过文件系统API访问文件)。

请尝试在不直接访问核心数据的sqlite文件的情况下重现该问题(始终通过NSPersistentStoreCoordinator/NSManagedObjectContext)。

如果你真的成功了,而且实际上有一个错误,我们很乐意修复它!(在这种情况下,请在主存储库中打开一个问题,包括尽可能多的详细信息)。

感谢您对Simperium的兴趣!

最新更新