zoukankan      html  css  js  c++  java
  • 3.1. 修改托管对象模型(Core Data 应用程序实践指南)

      托管对象模型是会变好的,有时候变化的比较小,什么添加验证规则、修改默认值、修改获取请求模板等。但是设置到结构变化,如添加、删除字段时,需要先把持久化数据区迁移到新的模型版本才行。假如没有提供迁移数据所需的映射与设定,那么应用程序就会崩溃。

      程序修改,以引发模型不兼容错误

    • 运行程序,确保创建了持久化存储区
    • 选中Model.xcdatamodeld
    • 添加Measurement新实体
    • 添加abc属性,类型为String
    • 重新运行程序,发现错误

      reason=The model used to open the store is incompatible with the one used to create the store

    • 如果没有错误,Product > Clean ,然后重复上面步骤

      对于上面错误,开发者可以Clean之后重新安装,用户可以卸载重新安装。即使用户愿意这么做,他的数据也回丢失。显然,这是不科学的。有好几种方法迁移现有的数据化持久区,而迁移路径则是由变更的复杂程度以及是否使用iCloud等因素来决定的

      无论采用哪种迁移办法,我们都必须先熟悉 “模型版本控制”(model versioning)

      修改程序:

    • 删除Measurement实体
    • 重新运行程序,应该就不会崩溃了
  • 相关阅读:
    【t090】吉祥数
    【u221】分数
    【u212】&&【t036】最大和
    【u125】最大子树和
    【u124】环状最大两段子段和
    【u123】最大子段和
    【u122】迎接仪式
    【u121】教主的花园
    【u118】日志分析
    【u117】队列安排
  • 原文地址:https://www.cnblogs.com/SimonGao/p/4936719.html
Copyright © 2011-2022 走看看