Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Coredata迁移:更改值类型_Ios_Xcode_Core Data_Migration - Fatal编程技术网

Ios Coredata迁移:更改值类型

Ios Coredata迁移:更改值类型,ios,xcode,core-data,migration,Ios,Xcode,Core Data,Migration,我已经发布了一个使用Coredata的应用程序,所以请保存所有数据。我的模型定义了一个BinaryData类型的值,我想将该类型更改为Integer 当前该字段未使用,但其类型不正确。我可以轻松迁移我的店铺吗?我尝试过一些方法,但没有一种真正有效 有什么想法吗?正确的方法是使用映射模型,但我认为有一个更实用的解决方案适合您。由于该字段从未使用过,请删除它。开销几乎不存在 现在,您需要做的就是轻量级迁移: 创建新的模型版本 添加Int属性,删除旧属性 将活动模型版本更改为新版本 将调用中的选项更

我已经发布了一个使用Coredata的应用程序,所以请保存所有数据。我的模型定义了一个BinaryData类型的值,我想将该类型更改为Integer

当前该字段未使用,但其类型不正确。我可以轻松迁移我的店铺吗?我尝试过一些方法,但没有一种真正有效


有什么想法吗?

正确的方法是使用映射模型,但我认为有一个更实用的解决方案适合您。由于该字段从未使用过,请删除它。开销几乎不存在

现在,您需要做的就是轻量级迁移:

  • 创建新的模型版本
  • 添加Int属性,删除旧属性
  • 将活动模型版本更改为新版本
  • 将调用中的选项更改为
    addPersistentStore
    以包括
    • NSMigratePersistentStoresAutomaticallyOption
    • nsinfermappingmodelautomaticalyOption
  • 更改代码以使用新属性
  • 从代码中消除旧属性的所有潜在用途

在上传之前彻底测试;-)

是的,你可以。这将有助于你:嗯,现在CoreData无法创建ManagedModel。我还更改了模型url,添加了“d”:
和扩展名:@“momd”]
似乎这是另一个问题。确保你完成了前三个步骤。使用版本管理来测试更改。那是一个愚蠢的错误,是我的错。重命名了新版本,Xcode惊慌失措。现在还有另一个问题:如果我没有安装旧版本的应用程序并安装新版本,我会遇到一个奇怪的错误:好吧,你知道解决方案。调试愉快!回到你以前的状态,再做一遍动作。