我目前在使用CoreData的iOS上遇到Simperium问题。在第一次启动应用程序时,Simperium尝试与CoreData同步。
有时它会100%正确地工作,有时它会将一些关系设置为“nil”,尽管服务器上的Simperium数据并没有这么说。除非我重新安装整个应用程序,否则不会修复此问题。然后我再次滚动骰子以查看关系是否在启动时正确链接。
我找不到这个模式。 nil的关系是完全随机的。有时这个实体在这里会有nil关系,然后下次我尝试它时,不同的实体将没有任何关系。
所有关系都是可选的,我的CoreData文件没有任何问题。
有人有这样的问题吗?我在2014年的一个错误中找到了完全相同的问题,但从那时起它就一直存在。
我可以在这里找到完全相同的问题:https://github.com/Simperium/simperium-ios/issues/250
旁注:如果您阅读了该问题,他还会澄清他在编辑CD文件时遇到问题,而Simperium正在同步,导致无关系。有人证实这件事发生了吗?如果是这样,这可能是我的问题。
答案 0 :(得分:2)
高度可能是因为您所描述的情况(在Simperium同步时编辑CD文件)引起的故障。
核心数据在内部处理锁,以维护数据完整性。直接访问sql存储可能会导致数据损坏(我假设您通过Firefox插件,模拟器或通过Filesystem API访问文件来编辑文件)。
请尝试在不直接访问Core Data的sqlite文件的情况下重现该问题(始终通过NSPersistentStoreCoordinator / NSManagedObjectContext)。
如果你成功了,并且有效地存在错误,我们很乐意将其修复! (在这种情况下,请打开一个问题the main repository,包括尽可能多的详细信息。)
感谢您对Simperium的兴趣!