能够合理管理内存必威手机官网,CoreData的迁移方

一、前言

以前写过一篇关于CoreData,Realm,SQLite的文章,里面大概就是介绍了一下它们的用法和推荐的三方库,建议再看这篇文章之前可以浏览一下之前的那篇文章。今天在这里我就来说一下关于它们的数据库迁移问题,数据库的迁移都是非嵌套的迁移方式,这样就可以避免有的用户没有及时更新带来的隐患。

一、概念

CoreData是苹果在iOS5推出来用于数据持久化的API,相对于SQLite来说,CoreData省去了写SQL语句的麻烦,大家都知道在Xcode里面写SQL语句特别容易出错,只要出错这个bug我们估计要找半天吧!CoreData提供数据--OC对象映射关系来实现数据和对象的管理,这样就无需任何的SQL语句来操作数据库。

SQLite也是一款轻量级的数据库,而且还是世界上使用最多的数据库引擎,而且是开源的和跨平台的,这个才是王道。

Realm是个比较新的产品,官网出来的时间也是在2014年,同时Realm也是跨平台的移动数据库,不仅支持Android,iOS还支持macOS,Linux,ReactNative和Xamarin,而且官方的文档给的特别的清楚,还有中文版的,Realm的处理速度上和CoreData、SQLite的速度并不差,但是他的复杂程度相对于CoreData和SQLite来说就更简单。官网,文档

前言:最近ChinaDaily项目需要迭代一个新版本,在这个版本中CoreData数据库模型上有新增表、实体字段的增加,那么在用户覆盖安装程序时就必须要进行CoreData数据库的版本升级和旧数据迁移,如果仅仅是在旧版本的数据模型上进行上述操作,就会造成所有旧用户更新完成后的第一次启动崩溃。示例Demo:CoreDataLearn

CoreData简介

1.Core Data 是数据持久化存储的最佳方式
2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型
3.好处:能够合理管理内存,避免使用sql的麻烦,高效
4.构成:
(1)NSManagedObjectContext(被管理的数据上下文)
操作实际内容(操作持久层)
作用:插入数据,查询数据,删除数据
(2)NSManagedObjectModel(被管理的数据模型)
数据库所有表格或数据结构,包含各实体的定义信息
作用:添加实体的属性,建立属性之间的关系
操作方法:视图编辑器,或代码
(3)NSPersistentStoreCoordinator(持久化存储助理)
相当于数据库的连接器
作用:设置数据存储的名字,位置,存储方式,和存储时机
(4)NSManagedObject(被管理的数据记录)
相当于数据库中的表格记录
(5)NSFetchRequest(获取数据的请求)
相当于查询语句
(6)NSEntityDescription(实体结构)
相当于表格结构
(7)后缀为.xcdatamodeld的包
里面是.xcdatamodel文件,用数据模型编辑器编辑
编译后为.momd或.mom文件

为什么要版本迁移

一个有明确产品定义的公司所做的软件一定不会是一个版本的,(本人

本文由必威发布于必威-编程,转载请注明出处:能够合理管理内存必威手机官网,CoreData的迁移方

相关阅读