ios - Simperium 复制现有记录

标签 ios swift core-data simperium

当我的 iOS 应用程序第一次启动时,它会使用默认数据初始化一些实体。当应用程序首次安装在设备上时,同一用户的每个设备都会完成相同的过程。这会导致 Simperium 出现问题,因为即使我对实体的某个属性有约束,它也会创建重复项。如何才能避免这种情况的发生呢?有没有办法让 Simperium 跳过本地初始化的对象?或者防止它插入重复项?

将实体的 simperiumKey 设置为对于用户的所有设备都相同的自定义常量值是否可以解决问题?我的意思是,这是否会阻止 Simperium 从不同设备导入完全相同的实体,从而产生重复和同步冲突?

因为我尝试了该选项,看起来 Simperium Server 上的存储桶没问题,但是当我处理 View 并再次打开它时,实体不再存在。当我重新启动应用程序时,它们又回来了......看起来它们消失了,但在重置应用程序后又重新出现了......非常奇怪。

更新 问题是,如果我尝试从不同的设备插入相同的实体,我会得到重复的实体。例如。当我第一次设置我的应用程序时,我有一个用代码和其他东西初始化货币实体的函数。如果用户决定在新设备上安装应用程序,则可以在不同的设备上完成相同的操作。在这种情况下,由于新设备将再次初始化 CURRENCY 实体,因此这些信息将生成重复和冲突错误。我需要一种方法让 Simperium 明白设备中本地初始化的实体不得重复。我会从 SPManagedObject 中删除继承,以阻止 Simperium 同步实体,但反过来它们与其他实体有关系,这肯定会给 Simperium 带来问题,因为它会尝试同步与不继承的对象有关系的实体来自 SPManagedObject。希望您现在有了更清晰的想法。

最佳答案

在阅读了有关此主题的各种帖子后,我了解到不注销(这意味着:不调用signOutAndRemoveLocalData)并设置自定义 simperiumKey-s 将防止数据重复。我测试了这个解决方案,它看起来显然不错。我的应用程序需要 Simperium 与同一用户的其他设备同步数据,但它主要与本地 CoreData 数据库配合使用。我希望这个解决方案适合这种情况。

关于ios - Simperium 复制现有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619085/

相关文章:

ios - 警报 View 中的两个文本字段,它们之间有空格

ios - 如何实现 JSON 的离线缓存?

objective-c - 如何将 Objective-C 指针数组转换为 Swift?

xcode - 在文本字段占位符中显示基于位置的货币标识符

ios - segue 快速获得 twise 调用

ios - 委托(delegate)和方法没有理由不执行

ios - 我可以以编程方式设置环境变量吗?

ios - 在单元格上设置 backgroundView 后 UITableViewCells 之间的垂直空间

ios - 如何创建 CoreData 状态的快照?

在另一个 View 中更新核心数据实体后,SwiftUI ListView 未更新