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实体
- 重新运行程序,应该就不会崩溃了
3.1. 修改托管对象模型(Core Data 应用程序实践指南)的更多相关文章
- 3. 托管对象模型的迁移(Core Data 应用程序实践指南)
本章介绍如何添加模型版本及模型映射,演示几种迁移技术,供在升级模型时使用. 3.1. 修改托管对象模型 3.2. 添加模型版本 3.3. 轻量级迁移方式 3.4. 默认的迁移方式 3.5. 通过迁移管 ...
- Core Data 应用程序实践指南(Core Data 应用程序实践指南)
译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...
- 1.1.Core Data是什么(Core Data 应用程序实践指南)
Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...
- 2.1. 托管对象模型是什么(Core Data 应用程序实践指南)
托管对象模型是一种数据结构.在这里,数据结构.纲要.对象图.数据模型.托管对象模型这些术语是一个意思.它们是对同一个东西不同场景的描述.比如,对Core Data 而言是托管对象模型,对设计器来说是对 ...
- 1.1.2.托管对象模型(Core Data 应用程序实践指南)
托管对象模型即对象图,可以看成实体类的描述,规定了数据字段. 要想创建托管对象模型,需生成NSManagedObjectModel类的实例.
- 2.2. 添加托管对象模型(Core Data 应用程序实践指南)
右键分组Grocery Dude > New Group > Data Model New File > Core Data > 创建新的模板文件
- 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...
- 1.4.2.3. SETUP(Core Data 应用程序实践指南)
初始化Core Data的三个方法: init,初始化托管对象模型.持久化存储协调器.托管对象上下文 - (id)init { ) { NSLog(@"Running %@ '%@'&quo ...
- 2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)
Core Data 使用 “带符号的整数”,通常我们会选择Integer 32,如果不够,可以升级为Integer 64 (第3章),通过升级托管对象模型. 这三种类型对应的特性(Property)类 ...
随机推荐
- 热门IOS 第三方库
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZ ...
- HDU 1176 免费馅饼(数塔dp)
一开始被吓到了,后来再仔细一读发现就是一个数塔,没有那么复杂 #include<stdio.h> #include<string.h> #include<algorith ...
- Struts2--模块包含
login.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUB ...
- Coloring Trees
Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- fuel 6.1自动推送3控高可用centos 6.5 juno环境排错(一)
查看fuel日志: # less /var/log/docker-logs/remote/node-1.domain.tld/puppet-apply.log 2015-12-25T17:26:22. ...
- PAT (Advanced Level) 1003. Emergency (25)
最短路+dfs 先找出可能在最短路上的边,这些边会构成一个DAG,然后在这个DAG上dfs一次就可以得到两个答案了. 也可以对DAG进行拓扑排序,然后DP求解. #include<iostrea ...
- 轻量级别的Cache和反向代理软件---Varnish
1.Varnish描述 1.1 Varnish的结构与特点 Varnish是一个轻量级别的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点: 基于内存进行缓存,重启后 ...
- H5手机开发锁定表头和首列(惯性滚动)解决方案
前端时间移动端在做表格的时候需要这个功能,由于还有实现类似原生的惯性滚动功能,于是使用了iscroll插件. iscroll插件下载地址:iscroll5 该功能demo github地址: http ...
- Keil MDK下如何设置非零初始化变量(转)
源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...
- IOS FMDB模糊查询
http://blog.sina.com.cn/s/blog_9630f1310101fx1d.html /查询记录 -(NSArray*)selectitemDream_desc:(JiemengS ...