Simperium 复制现有记录
Simperium duplicates existing records
当我的 iOS 应用程序首次启动时,它会使用默认数据初始化一些实体。当应用程序首次安装在设备上时,同一用户的每台设备都会完成相同的过程。这会导致 Simperium 出现问题,因为即使我对实体的属性之一有约束,它也会创建重复项。如何避免这种情况发生?有没有办法让 Simperium 跳过本地初始化的对象?还是为了防止它插入重复项?
将实体的 simperiumKey 设置为对用户的所有设备都相同的自定义常量值是否可以解决问题?我的意思是,这会阻止 Simperium 从会产生重复和同步冲突的不同设备导入完全相同的实体吗?
因为我尝试了那个选项,看起来 Simperium 服务器上的存储桶没问题,但是当我处理视图并再次打开它时,实体不再存在。当我重新启动应用程序时,它们又回来了……看起来它们在重置应用程序后消失了又重新出现了……很奇怪。
更新
问题是如果我尝试从不同的设备插入相同的实体,我会得到重复的实体。例如。当我第一次设置我的应用程序时,我有一个函数可以用代码和其他东西初始化 CURRENCY 实体。如果用户决定在新设备上安装该应用程序,则可以从不同的设备执行相同的操作。在这种情况下,因为新设备将再次初始化 CURRENCY 实体,这些信息将产生重复和冲突错误。我需要一种方法让 Simperium 明白设备中本地化的实体不能被复制。我会从 SPManagedObject 中删除继承以阻止 Simperium 同步实体,但它们又与其他实体有关系,这肯定会给 Simperium 带来问题,因为它会尝试同步与不继承的对象有关系的实体来自 SPManagedObject。希望你现在有了更清晰的思路。
阅读有关此主题的各种帖子后,我了解到不注销(这意味着:不调用 signOutAndRemoveLocalData)并设置自定义 simperiumKey-s 可以防止数据重复。我测试了这个解决方案,它看起来不错。我的应用程序需要 Simperium 与同一用户的其他设备同步数据,但它主要与本地 CoreData 数据库配合使用。我希望这个解决方案适用于这种情况。
当我的 iOS 应用程序首次启动时,它会使用默认数据初始化一些实体。当应用程序首次安装在设备上时,同一用户的每台设备都会完成相同的过程。这会导致 Simperium 出现问题,因为即使我对实体的属性之一有约束,它也会创建重复项。如何避免这种情况发生?有没有办法让 Simperium 跳过本地初始化的对象?还是为了防止它插入重复项?
将实体的 simperiumKey 设置为对用户的所有设备都相同的自定义常量值是否可以解决问题?我的意思是,这会阻止 Simperium 从会产生重复和同步冲突的不同设备导入完全相同的实体吗?
因为我尝试了那个选项,看起来 Simperium 服务器上的存储桶没问题,但是当我处理视图并再次打开它时,实体不再存在。当我重新启动应用程序时,它们又回来了……看起来它们在重置应用程序后消失了又重新出现了……很奇怪。
更新 问题是如果我尝试从不同的设备插入相同的实体,我会得到重复的实体。例如。当我第一次设置我的应用程序时,我有一个函数可以用代码和其他东西初始化 CURRENCY 实体。如果用户决定在新设备上安装该应用程序,则可以从不同的设备执行相同的操作。在这种情况下,因为新设备将再次初始化 CURRENCY 实体,这些信息将产生重复和冲突错误。我需要一种方法让 Simperium 明白设备中本地化的实体不能被复制。我会从 SPManagedObject 中删除继承以阻止 Simperium 同步实体,但它们又与其他实体有关系,这肯定会给 Simperium 带来问题,因为它会尝试同步与不继承的对象有关系的实体来自 SPManagedObject。希望你现在有了更清晰的思路。
阅读有关此主题的各种帖子后,我了解到不注销(这意味着:不调用 signOutAndRemoveLocalData)并设置自定义 simperiumKey-s 可以防止数据重复。我测试了这个解决方案,它看起来不错。我的应用程序需要 Simperium 与同一用户的其他设备同步数据,但它主要与本地 CoreData 数据库配合使用。我希望这个解决方案适用于这种情况。