gpt4 book ai didi

objective-c - 出货后在CoreData应用中引入iCloud,如何迁移旧数据

转载 作者:太空狗 更新时间:2023-10-30 03:44:14 26 4
gpt4 key购买 nike

我正计划发布一个 CoreData 应用程序,但我不确定是否会引入 iCloud 功能。这个问题是在我在 iPhone 上对我的应用程序进行 Beta 测试并用相关数据填充之后提出的。然后我添加了 iCloud 功能并开始在 iPad 上进行测试。我发现只有新条目在设备之间同步,这是我所做的尝试:

  • 在 iPhone 上工作,填充数据,启用 iCloud,开始在空 iPad 上工作

但我遇到了一些奇怪的问题,例如子实体附加到错误的父实体。然后我尝试了这个。

  • 从 iPhone 导出申请文件并在 iPad 中导入

在这种情况下,两台设备上的数据相同,但我仍然无法同步旧数据,而新数据在大多数情况下会在几秒后完美同步。

我知道 CoreData 同步发生在事务日志交换中,因此很明显旧数据不会同步。但在这一点上,我想问的是是否有人已经遇到过这个对我来说很常见的问题,或者我是否遗漏了某些东西、某种设置或代码行以使其按预期工作。

最佳答案

我认为您没有遗漏任何内容。基本问题是 iCloud 不支持预存数据库。这也是困扰我的事情。来自文档的

https://developer.apple.com/library/ios/#releasenotes/DataManagement/RN-iCloudCoreData/_index.html

You should not seed initial content with a prepackaged database file. Instead, you should create the default items in code, or use NSPersistentStoreCoordinator's migratePersistentStore:toURL:options:withType:error: method to migrate a prepackaged database to the required location.

我还没有尝试在我的工作中使用 migratePersistentStore:... 方法,但关键事实似乎是通过事务日志在 iCloud 中传输核心数据依赖于每个事务从数据库诞生起就被机制跟踪。

我会假设使用 migratePersistentStore:... 会导致大量的交易播种 blob 攻击系统。

关于objective-c - 出货后在CoreData应用中引入iCloud,如何迁移旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553980/

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