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实体
    • 重新运行程序,应该就不会崩溃了
  • 相关阅读:
    Intent flag 与启动模式的对应关系
    Activity的启动模式---总结
    NDK---使用,开发步骤
    自定义ViewGroup
    android:process结合activity启动模式的一次实践
    Java单元测试之覆盖率统计eclemma
    Java单元测试之JUnit篇
    结对编程1
    个人作业1——四则运算题目生成程序(基于控制台)
    Coding使用方法
  • 原文地址:https://www.cnblogs.com/SimonGao/p/4936719.html
Copyright © 2011-2022 走看看