Core Data 版本号迁移经验总结】的更多相关文章

大家在学习和使用Core Data过程中,第一次进行版本号迁移的经历一定是记忆犹新,至少我是这种,XD.弄的不好,就会搞出一些因为迁移过程中数据模型出错导致的Crash.这里总结了一下Core Data版本号迁移过程中的经验.希望对大家实用. 写在前面 关于Core Data版本号迁移,这两篇文章都进行了分析,大家能够參考. Core Data Model Versioning and Data Migration Programming Guide 自己定义 Core Data 迁移 迁移准备…
一. Lightweight Migration i. 适合场景 Simple addition of a new attribute Removal of an attribute A non-optional attribute becoming optional An optional attribute becoming non-optional, and defining a default value Renaming an entity or property ii. 如何做 1.…
原文  http://chun.tips/blog/2014/11/28/core-data-ban-ben-qian-yi-jing-yan-zong-jie/ 主题 Core DataiOS开发 大家在学习和使用Core Data过程中,第一次进行版本迁移的经历一定是记忆犹新,至少我是这样的,XD.弄的不好,就会搞出一些由于迁移过程中数据模型出错导致的Crash.这里总结了一下Core Data版本迁移过程中的经验,希望对大家有用. 写在前面 关于Core Data版本迁移,这两篇文章都进行…
Core Data版本迁移基础 通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数据迁移都是由Core Data来负责完成的.这种数据迁移模式称为Lightweight Migration(可能对于开发人员来说是lightweight),开发人员只要在添加Persistent Store时设置好对应选项,其它的就交付给Core Data来做了: 从命名上可以看出这两个选项分别代表:自动迁移Persistent Store,以及自动创建Mapping Model.…
http://www.cocoachina.com/ios/20150902/13304.html 在iOS和OSX应用程序中存储和查询数据,Core Data是一个很好的选择.它不仅可以减少内存使用.提高性能,而且它可以使你避免写很多不必要的样板文件代码. 此外,Core Data API非常灵活,可以用在各种应用程序中,所有应用程序有不同的数据存数需求. 然而,这种灵活性意味着有时Core Data用起来可能稍微有点困难.即便你是一个Core Data专家,仍然会需要处理一些平常的任务,也会…
来源:一缕殇流化隐半边冰霜 (@halfrost ) 链接:http://www.jianshu.com/p/d79b2b1bfa72 前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那么我先简单介绍一下这个新生的数据库.号称是用来替代SQLite 和 Core Data的.Realm有以下优点: 使用方便 Realm并不是基于SQLite的对象关系映射数据库.它是使用自己的持久化引擎,为简单和速度而生.用户们说,他们在数分钟之内就上手了Realm,构建一个app只需要数小时,每个…
前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那么我先简单介绍一下这个新生的数据库.号称是用来替代SQLite 和 Core Data的.Realm有以下优点: 使用方便 Realm并不是基于SQLite的对象关系映射数据库.它是使用自己的持久化引擎,为简单和速度而生.用户们说,他们在数分钟之内就上手了Realm,构建一个app只需要数小时,每个app开发时间至少节约数周的时间. 快 Realm比其他的对象关系映射型数据库(Object Relational Mapping),甚…
持久化存储协调器会试着用新版的模板打开原来的持久化存储区,但是那是旧的模板,旧的格式,当然会出错.现在要做的就是迁移现有的持久化数据区,以便跟新模型匹配. 怎么进行迁移呢? 在什么时候进行迁移? 在向NSPersistentStoreCoordinator添加存储区的时候. 那么如何添加呢? 答案是,将下列选项放到NSDictionary里传过去,就会自动完成存储区的迁移工作. 如果传给NSPersistentStoreCoordinator的NSMigratePersistentStoresA…
本文转载至 http://objccn.io/issue-4-7/ 感谢本文作者 朱宏旭 的不啬分享 自定义 Core Data 迁移似乎是一个不太起眼的话题.苹果在这方面只提供了很少的文档,若是初次涉足此方面内容,很可能会变成一个可怕的经历.鉴于客户端程序的性质,你无法测试你的用户所生成的数据集的所有可能排列.此外,解决迁移过程中出现的问题会很困难,而因为极有可能你的代码依赖于最新的数据模型,所以回退并不是一个可选的处理办法. 在本文中,我们将走一遍搭建自定义 Core Data 迁移的过程,…
<驾驭Core Data>系列教程综合了<Core Data for iOS>,<Learning Core Data for iOS>,<Core Data Programming Guide>,以及相关的博客资料.共包含14章内容.希望本系列教程能对学习Core Data的iOS开发者有所帮助. 本文由海水的味道编译整理,请勿转载,请勿用于商业用途.       当前版本号:0.0.5  第一章 Core Data概述 Mac OS X 10.4 Tig…
本文由海水的味道编译整理,请勿转载,请勿用于商业用途.    当前版本号:0.1.2 第三章数据建模 Core Data栈配置好之后,接下来的工作就是设计对象图,在Core Data框架中,对象图被表示为NSManagedObjectModel.对象图由若干个实体组成,实体被表示为NSEntityDescription.本章将围绕实体设计的相关细节展开讨论.本章也涉及到了常规的数据建模原则,因为这些原则也适用于创建实体.    托管对象NSManagedObject和实体NSEntityDesc…
谈谈用SQLite和FMDB而不用Core Data 发布于:2014-04-22 11:22阅读数:4235 凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要. 更重要的是,不 “”   阅读器 Core DataSQLiteFMDB 来源:伯乐在线 凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加…
               在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文本框内容的创建.修改,退出后台,再重新回到后台,来认识这两种持久化数据的方式.效果图如下[图1]: [图1 GUI界面效果图] [本次开发环境: Xcode:7.2     iOS Simulator:iphone6S plus   By:啊左]     (本文2个项目d…
凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要.更重要的是,不值得花时间和精力去写自己的系统去代替它.真的,使用Core Data吧. 这个转载老外的感想想法 为什么我不使用Core Data Mike Ash写到: 就我自己而言,我不是个狂热粉丝.我发现API是笨拙的,并且框架本身对于大量的数据是极其缓慢的. 一个实际的例子:10,000条目 想象一个RSS阅读器,一个…
本文由海水的味道编译整理,请勿转载,请勿用于商业用途.    当前版本号:0.4.0 第二章 Core Data入门 本章将讲解Core Data框架中涉及的基本概念,以及一个简单的Core Data app的结构组成. 首先回忆一下,在你还没有使用Core Data之前,你是如何处理数据的持久化. 将对象持久化到磁盘 当你需要在程序中将数据保存到磁盘,通常你会创建一个对象容器,可能是数组.集合或字典.当在保存数据时,你会将对象编码或序列化,然后保存到二进制文件.对于数据量较小的情况,你可能也会…
Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂.Core Data 相关的类比较多,初学者往往不太容易弄懂.计划用三个教程来讲解这一部分: 框架详解:讲解  Core data 框架,运作过程,设计的类:Core data应用程序示例:通过生成一个使用 Core data 的应用程序来讲解如何 在  XCode 4 中使用 Core data.手动创建Core data示例:不利用框架自动生成代码,完全自己编写所有的 Core data 相关代…
原文:Avoiding Ten Big Mistakes iOS Developers Make with Core Data   http://www.cocoachina.com/applenews/devnews/2014/0219/7851.html   Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很难精通,如果没有正确的学习方法,你将很难真正理解它,更不用说精通了.很多开发者常常在这方面犯一些错误,…
在上文,我们介绍了iOS开发中的其中2种数据持久化方式:属性列表.归档解档. 本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文本框内容的创建.修改,退出后台,再重新回到后台,来认识这两种持久化数据的方式.效果图如下[图1]: [本次开发环境: Xcode:7.2 iOS Simulator:iphone6 By:啊左] (本节2个项目demo的下载:数据库SQLite3的运用Demo.Core Data 的运用Demo)…
一.基础概念深入 1.NSManagedObjectContext 被管理数据上下文就像便笺簿 当从数据持久层获取数据时,相当于把这些临时的数据拷贝写在便笺簿上,然后就可以随心所欲的修改这些值. 通过上下文,可以对数据记录NSManagedObject进行添加删除更改,记录更改后支持撤销和重做. 除非你保存这些数据变化,否则持久层的东西是不会变化. 通常我们将 controller 类或其子类与 Managed Object Context NSManagedObjectContext绑定,这样…
译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. 托管对象数据模型的基本知识 传统数据库模式的设计与Core Data 之间的共性,并介绍数据模型.讨论实体(entity)和属性,配置基本的托管对象模型(managed object model).如何选择正确的数据类型.插入.获取.过滤.排序及删除托管对象.获取请求模板. 3. 托管对象数据模型…
Core Data 并不是数据库,它其实是一个拥有多种功能的框架.其中,有个功能是把程序与数据库之间的交互过程自动化,不用再编写SQL代码,改用Objective-C对象来实现. Core Data 的显著特性有: 变更管理(撤销与重做) 关系(relationship) 数据模型的版本管理及迁移 (通过batching及faulting)高效地获取数据 (通过谓词)高效地过滤数据 数据一致性及数据验证…
Core Data 是数据管理框架. 该书用Grocery Dude 购物管理程序来贯穿整个学习过程. 本书共分三个部分: 前7章为基础篇.从基础知识.迁移方式及扩展方式来讲解托管对象模型.怎么用图形界面来操作数据,具体来说怎样用表格视图.视图.选取器视图来打造一款简单易用的Core Data程序. 第8~12章为进阶篇.配置默认数据.精确控制数据迁移.高效数据搜索等.第10章中,程序添加拍照功能,寻找程序的性能瓶颈,用各种工具分析原因,解决瓶颈. 最后4章为扩展篇.与网络框架集成,实现数据备份…
为了不像3.1那样崩溃,修改模型之前先创建新的模型版本.添加之后,会生成一个新的xcdatamodel文件,并且跟原来的内容完全一样,这有意思了,但是不要删除原来旧版的模型.旧的模型有助于把原来持久化存储区迁移到当前的模型版本. 修改程序: 选中Model.xcdatamodeld 点击Editor > Add Model Version... 点击Finish,默认将Model 2用作版本名称 如图: 注意,我们要修改新的模板,慢慢进入正题了: 注意备份程序 选择Model 2.xcdatam…
前言 最近打算用.NET Core写一份开源的简易CMS系统,来练练手 所以又去深入研究了一下Entity Framework Core 发现其实有些细节园子里还是很少讲到. 特意整理了几个细节. 正文 1.数据库迁移 先了解一下什么是"数据库迁移",它提供了一种方法,可以逐步将Code First的实体架构更改应用于数据库,以保持数据库与EF Core模型同步,同时保留数据库中的现有数据. EF Core的数据迁移相对EF6来说改了不少也简化了一些.所以我们现在就来看看如何进行数据迁…
本文转载至 http://blog.csdn.net/majiakun1/article/details/38680147 为什么我不使用Core Data Mike Ash 写到: 就个人而言,我不是个狂热粉丝.我发现 (Core Data 的) API 是笨拙的,并且框架本身对于超过一定数量级的数据的处理是极其缓慢的. 一个实际的例子:10,000 个条目 想象一个 RSS 阅读器,一个用户可以在一个 feed 上点击右键,并且选择标记所有为已读. 实际实现上,我们有一个带有 read 属性…
原文出处: informit   译文出处:cocoachina Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很难精通,如果没有正确的学习方法,你将很难真正理解它,更不用说精通了.很多开发者常常在这方面犯一些错误,而这篇文章列出了开发者在iOS开发过程中使用Core Data常见的一些错误,并对如何避免这些错误进行了分析.  1.不了解关键术语 对于iOS开发者来说,会使用Core Data是一项必备技能.…
一.基础概念深入 1.NSManagedObjectContext 被管理数据上下文就像便笺簿 当从数据持久层获取数据时,相当于把这些临时的数据拷贝写在便笺簿上,然后就可以随心所欲的修改这些值. 通过上下文,可以对数据记录NSManagedObject进行添加删除更改,记录更改后支持撤销和重做. 除非你保存这些数据变化,否则持久层的东西是不会变化. 通常我们将 controller 类或其子类与 Managed Object Context NSManagedObjectContext绑定,这样…
深入浅出 Cocoa 之 Core Data(1)- 框架详解 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂.Core Data 相关的类比较多,初学者往往不太容易弄懂.计划用三个教程来讲解这一部分: 框架详解:讲解  Core data 框架,运作过程,设计的类:Core data应用程序示例:通过生成一个使用 Core data 的应用程序来讲…
在这篇文章中,我们将建立一个小型但却全面支持Core Data的应用.应用允许你创建嵌套的列表:每个列表的item都可以有子列表,这将允许你创建非常深层次的item.为了让大家完整的了解发生了什么,我们将通过使用手动创建堆栈的方式来代替Xcode中Core Data的模板.这个应用的代码放到了GitHub上. 我们将怎么建立? 首先,我们创建一个PersistentStack对象,为其提供一个Core Data模型和一个文件名,PersistentStack会返回一个managed object…
留给我这忘事精看 Core Data 是什么? 大概八年前,2005年的四月份,Apple 公布了 OS X 10.4,正是在这个版本号中 Core Data 框架公布了.那个时候 YouTube 也刚公布. Core Data 是一个模型层的技术.Core Data 帮助你建立代表程序状态的模型层.Core Data 也是一种持久化技术,它能将模型对象的状态持久化到磁盘,但它最重要的特点是:Core Data 不仅是一个载入.保存数据的框架,它还能和内存中的数据非常好的共事. 假设你之前以前接…