gpt4 book ai didi

ios - 在应用程序升级期间避免 iCloud 同步上的重复数据

转载 作者:行者123 更新时间:2023-11-29 12:38:09 30 4
gpt4 key购买 nike

我正在制作一个新版本的应用程序,它将 SQLite 数据库从旧应用程序版本(没有 Core Data,没有 iCloud)升级到带有 Core Data 和 iCloud 的新版本。我的应用程序具有一些功能,可以从 SQLite 中提取数据并将其添加到 Core Data。

这是我遇到的问题:

  1. 升级设备 1,数据被添加到 Core Data 并与 iCloud 同步。完美。
  2. 升级设备 2,相同的数据被添加到 Core Data 并与 iCloud 同步。
  3. 现在我的应用程序中的每条记录都有两份

我可以在新版本的发行说明中提出一个关于仅升级应用程序的一个实例并在其他设备上安装新版本的重要警告,但有些人不会注意到这一点。

是否有一种编程方式可以防止多个设备升级到 Core Data/iCloud 时出现数据重复?我考虑过为 iCloud 键/值同步添加一个标志,但在数据库升级之前,该数据可能无法及时到达第二台设备。

有什么想法吗?提前致谢。

iOS 7、Xcode 5.1.1

最佳答案

在无处不在的 KV 存储中使用标志将用于检测数据是否已播种。但是,根据您的应用程序的设置方式,您可能仍会遇到重复数据。例如,如果用户可以启用/禁用 iCloud,并且作为其中的一部分,在 iCloud 和本地存储之间合并数据。

虽然令人沮丧,但通常最好添加逻辑来检测和删除重复数据。为此,您通常需要一些附加信息(例如,最后更新的字段)。关键是重复数据删除在设备之间是一致的(例如,始终删除相同的重复项)。

根据过去的经验,我也会对使用无处不在的 KV 存储保持警惕。同步可能需要很长时间。相反,我建议在 iCloud 中存储一个文件,每个同步设备都有一个唯一标识符。通过这种方式,您可以判断是否存在任何数据,以及您的设备之前是否已与 iCloud 数据同步。

我有一个 iCloud 堆栈(我在自己的应用程序中使用它),它演示了基本的重复数据删除和基于文件的检查,您可以在 GitHub 上查看 https://github.com/IainMcManus/iOSCoreLibrary

有关基于文件的检查的更多信息,请访问 http://iaintheindie.com/2014/06/14/icloud-core-data-part-2/

关于ios - 在应用程序升级期间避免 iCloud 同步上的重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25707931/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com