将 Objective-C 核心数据迁移到 Swift 持久化容器

Posted

技术标签:

【中文标题】将 Objective-C 核心数据迁移到 Swift 持久化容器【英文标题】:Migrate Objective-C Core Data to Swift Persistent Container 【发布时间】:2019-04-10 15:26:51 【问题描述】:

当 Apple 添加新的 PersistentContainer 类时,他们更改了数据存储的位置。这意味着如果您添加一个新的 PersistentContainer,它不会选择当前数据库,而是创建一个。 根本问题是新商店位于另一个文件夹中。 如何为 PersistentContainer 指定文件夹以便它获取旧存储?

【问题讨论】:

【参考方案1】:

NSPersistentContainer 的持久存储在其persistentStoreDescriptions 数组属性中指定。默认情况下,它包含一个 SQLite 类型的持久存储,由应用容器的 Application Support 文件夹中的文件支持。

the documentation of this property 的 讨论 部分解释了更改此设置的过程。

此存储的文件路径在 NSPersistentStoreDescriptionurl 属性中指定,该属性是可变的。因此,您应该将该数组中单个NSPersistentStoreDescriptionurl 属性设置为您想要的路径。

【讨论】:

以上是关于将 Objective-C 核心数据迁移到 Swift 持久化容器的主要内容,如果未能解决你的问题,请参考以下文章

将 Objective-C 代码迁移到 Swift(Swift 2.0更新)-b

通过迁移将核心数据实体及其数据移动到新的核心数据模型文件中

来自核心数据的 Objective-C 日期格式

从 Objective-C 迁移到 Swift:AFNetworking > Alamofire

将 Objective-C iOS 应用程序迁移到自托管 Parse-Server 的问题

核心数据迁移:将字段提取到抽象实体子项