2

Core Data & iCloud 上的 WW2013 视频提到,通过在设置持久存储协调器时指定 NSPersistentStoreUbiquitousContentURLKey,可以将使用 iCloud 的 iOS7 之前的核心数据存储迁移到 iOS7 方式。

有没有人有这方面的运气?使用我的持久存储,我将 SQLLite 数据库放在 .nosync 文件夹中,将日志文件放在不同的子目录中。我尝试将 NSPersistentStoreUbiquitousContentURLKey 设置为指向每一个,我总是让我的整个数据库被覆盖,而不是所有的东西都迁移过来。

4

1 回答 1

2

我不记得关于迁移到 iOS 7 的任何说法,我记得他们指出要保持与为事务日志指定自定义路径的遗留应用程序的兼容性,您可以继续使用 NSPersistentStoreUbiquitousContentURLKey。这个键应该只用于指向日志目录,当你使用它时不会迁移任何东西,Core Data 只使用现有的存储和 iCloud 事务日志。

要迁移它以使其使用 iOS7 中的新默认值,您需要使用migratePersistentStoreAPI 使用新文件 URL 和仅 NSPersistentStoreUbiquitousContentNameKey 创建新商店。然后,Core Data 将自动为您创建后备和本地(iCloud 同步)存储和 iCloud 事务日志文件。

编辑:

如果其他人在尝试此操作时遇到问题,请尝试将商店设置为使用 JOURNAL 模式而不是新的默认 WAL 模式。在使用 WAL 模式进行某些迁移时似乎存在一些问题。如果有人弄清楚 WAL 模式是否有特定的错误,请在此处添加链接。

于 2013-11-19T06:29:20.213 回答