您的位置:首页 > 其它

CoreData的简单使用(二)数据的增删改查,轻量级的版本迁移

2016-02-26 16:05 417 查看
上一篇中我们已经使用CoreData创建了一个SQLite数据库

CoreData的简单使用(一)数据库的创建

现在对数据库进行数据的CRUD(增删改查)

1.Data Model 的设置

  创建一个DataModel,取名CRUD.xcdatamodeld,添加Entity(Library和Book),添加属性,在Book中设置和Library的关联关系(一个Book可以存放在一个Library里)

Book的属性和关联关系(选择Destination为Library,关系名称取名为library)注意区分大小写



Library的属性:



创建NSManagerObject subclass:



2. 在viewController.m来进行CRUD,注意方法的调用下面代码都抽离成方法,对数据进行操作都要创建_context对象(调用creatSQLite方法)

(1)导入头文件

   #import "Library.h"

    #import "Book.h"

    #import <CoreData/CoreData.h>

  (2)设置context属性,因为我们是利用context进行CRUD,所以把它设置成一个属性或者全局变量

@interface ViewController ()

@property (strong, nonatomic) NSManagedObjectContext *context;

@end


  (3)创建数据库

去沙盒里找到数据库,查看一下,成功创建,关联关系也已经建立好了,Book里有一个LIBRARY的属性

   


3.添加数据

数据已经成功添加了 注意:ZBOOK中的ZLIBRARY对应的是ZLIBRARY的Z_PK,不要和代码中的1,2混淆,





4.查询数据

查询结果如下 注意:这里容易造成错误的就是谓词的使用,如果没有对应得属性就会造成崩溃;



5.修改数据

结果,已经把“鲁滨逊漂流记”的书名修改成了“生物医学工程”



6.删除数据

结果,“生物医学工程”这本书已经被成功删除



7.版本迁移

模型文件的版本迁移:

1.原则:不能删除原来的模型文件,而是新增模文件的版本。

2.步骤:

(1)创建模型文件的新版本:Editor/Add Model Version

(2)设置Current Model Version为新版本。

(3)在配置NSPersistentStoreCoordinator时,添加设置字典,里面有相关键值对配置设置选项。

3.实现

(1)选中工程中的 xcdaramodeId 文件,Menu->Editor->Add Model Version

(2) 添加完成后,xcdaramodeId 文件可以展开,可以看到新增加的Model文件 ,在右侧工具栏选择Current Model Version 为新的Model文件





(3)在CRUD 2Z中添加新的实体和属性



(4)在ViewController.m - (void)creatSQLite方法中修代码,主要是NSPersistentStoreCoordinator的配置字典

     之前 addPersistentStoreWithType: configuration: URL: options: error: 方法中options传的都是nil

   修改后传入配置字典

(5)运行,找到数据库进行查看Person已经被添加进来了,数据也都正确

   


上述代码只能是对数据模型增加实体或者可选属性时,才可以这样迁移(轻量级迁移 Lightweight Migration)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: