gpt4 book ai didi

ios - 如何升级iOS Core Data模型和数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:22 26 4
gpt4 key购买 nike

我有一个使用核心数据(后端的 SQLite)的 iOS 应用程序。它只有一个实体,“项目”。该应用程序捆绑了一个 SQLite 文件,其中预先添加了数百个项目,因此当用户从 App Store 下载该应用程序时,它已经拥有了数据。

唯一的实体具有用户可以更改的 BOOL favorite 属性,当然用于检查某个项目是否在用户最喜欢的项目中。

我计划发布应用程序更新,在应用程序包(一个新的 SQLite 文件)中包含更多预构建的项目,但我想保留用户收藏夹 。同样,在这个版本中,我的核心数据模型将进行一些修改(我需要“项目”实体中的一些新属性)。新项目集是旧项目的超集(旧版本应用程序中的项目总是在新版本中)。

我一直在努力解决这个问题,但找不到解决方案。我能够升级数据模型,将新属性引入我的实体,同时保留用户的收藏夹(执行所谓的轻量级迁移,但之后我无法合并新旧项目。另一方面,我能够获取新的预添加项目,但随后丢弃了与收藏夹相关的数据。

有什么提示吗?提前谢谢大家

最佳答案

我终于设法解决了这个问题。

我的应用委托(delegate)中有两个 NSPersistentStoreCoordinator、两个 NSManagedObjectContext 和两个 NSManagedObjectModel:一组用于应用程序(更新后的),另一组指向旧存储。在我的应用程序委托(delegate) didFinishLaunchingWithOptions: 方法中,我从旧商店加载所有用户的收藏夹并将它们保存到新商店中。这是应用程序中我接触旧商店的唯一一点。

谢谢大家!

关于ios - 如何升级iOS Core Data模型和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588031/

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