加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 核心数据从Integer 16更改为Integer 32的属性

发布时间:2020-12-15 01:50:34 所属栏目:百科 来源:网络整理
导读:我有一个非常严重的问题.该应用程序是实时的,但不幸的是它在iOS 5上失败了,我需要发布更新. 事情是少数实体的ID列在Integer 16中,但我需要更改为Integer 32. 这显然是我的错,这个模型是很久以前创建的,它只是被重用了.令我惊讶的是(现在)在iOS 4上,核心数据
我有一个非常严重的问题.该应用程序是实时的,但不幸的是它在iOS 5上失败了,我需要发布更新.

事情是少数实体的ID列在Integer 16中,但我需要更改为Integer 32.

这显然是我的错,这个模型是很久以前创建的,它只是被重用了.令我惊讶的是(现在)在iOS 4上,核心数据中的整数16可以很容易地保持数字大到500 000(错误?),但它现在不能正常工作 – 它给了我无效的数字.

应用程序是实时的,它是成功的,Core Data也用于保持用户的分数,成就等等,我不想删除,迫使他们重新安装应用程序.简单地将不同实体中的十个属性从Integer 16更改为Integer 32的最佳方法是什么?

当然,我知道这些属性的名称和实体.

如果我只是更改xcdatamodeld文件中这些属性的Type列,那么对于新用户来说,它会起作用,但现有用户的文档文件夹中已经有sqlite文件.我相信我需要以某种方式更改持久性存储协调器.

而且你对性能有什么看法,有大约10个属性,新闻要从16改为32,但Core Data在通常情况下有超过10万个对象.

问候

解决方法

在NSPersistentStore中打开NSMigratePersistentStoresAutomaticallyOption’和’NSInferMappingModelAutomaticallyOption,然后使用更改创建模型的第二个版本.只进行整数更改以保持迁移简单.这将允许安装升级的用户从损坏的模型迁移到更正的模型.

注意:这必须是自动迁移;使用映射模型的手动迁移将不起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读