gpt4 book ai didi

具有 PersistentStore 的 iOS 应用程序 coreData 作为静态 sqlite 数据迁移?

转载 作者:行者123 更新时间:2023-11-28 18:01:01 32 4
gpt4 key购买 nike

该应用程序使用 bundle 目录中的静态 sqlite(初始数据)作为 Coredata 的持久存储。 sqlite 有 7 个表,其中一个表通过添加额外的列/字段进行了修改。我如何让 coreData 了解持久存储(存储)已更改并且需要进行新更新?是否有像我们对 coredata 所做的那样的 sqlite 模型版本概念?

最佳答案

对于那些不想深入研究文档并正在寻找快速修复的人:

1>打开您的 .xcdatamodeld 文件

2>点击编辑器

3> 选择添加模型版本...

4> 添加模型的新版本(添加的新数据模型组)

5> 选择主文件,打开文件检查器(右侧面板)

6> 并在 Versioned core data model 下为当前数据模型选择新版本的数据模型

7> 这还不是全部)您应该执行所谓的“轻度迁移”。

8> 转到您的 AppDelegate 并找到创建 persistentStoreCoordinator 的位置

9> 如果 (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) 找到这一行

10> 将 nil 选项替换为 @{NSMigratePersistentStoresAutomaticallyOption:@YES, NSInferMappingModelAutomaticallyOption:@YES}(实际上在该方法的注释代码中提供)

到此为止,玩得开心!附言这仅适用于轻量级迁移。为了使您的迁移符合轻量级迁移的条件,您的更改必须限制在这个窄带内:

添加或删除属性(属性或关系)。

将非可选属性设为可选。

使可选属性成为非可选属性,只要您提供默认值即可。

添加或删除实体。

重命名属性

重命名实体。

关于具有 PersistentStore 的 iOS 应用程序 coreData 作为静态 sqlite 数据迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29918219/

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