博客> iOS coreData数据持久化存储 _code_lover
iOS coreData数据持久化存储 _code_lover
2018-12-13 08:18 评论:0 阅读:963 code_lover
ios coreData 数据持久化存储

一、相关概念

CoreData是iOS5之后才出现的一个框架,它提供了对象-关系映射的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象

coreData数据持久化是对SQLite的一个升级,它是ios集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类。

(1)NSManagedObjectModel(被管理的对象模型)            相当于实体,不过它包含 了实体间的关系

   (2)NSManagedObjectContext(被管理的对象上下文)

         操作实际内容         作用:插入数据  查询  更新  删除

  (3)NSPersistentStoreCoordinator(持久化存储助理)           相当于数据库的连接器

    (4)NSFetchRequest(获取数据的请求)             相当于查询语句

      (5)NSPredicate(相当于查询条件)

    (6)NSEntityDescription(实体结构)

    二、创建数据模型

1、创建实体 2、创建实体属性 3、为两个实体建立关系 4、建立返回对象

三、需要注意的几个地方

1.通过Core Data从数据库取出的对象,默认情况下都是NSManagedObject对象,NSManagedObject的工作模式有点类似于NSDictionary对象,通过键-值对来存取所有的实体属性 2.生成模型的对象实体是继承于NSManagedObjectModel 3.生成的模型对象中使用的是dynamic,我们平时用的是synthesize,dynamic的特点就是它的getter和setter方法不能自己定义

相关博客:http://blog.csdn.net/q199109106q/article/details/8563438/

四、示例代码

 //1.存储数据
//1.1获取数据模型
Student *student = [Student MR_createEntity];
student.nsme = @“张三“;
student.address = @“北京市某某地”;
//1.2通过上下文存储数据
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

//2.查询数据(数据库中存储的对象,取出来第一个)
Student * stu = [Student MR_findFirst];

//2.1去除数据库中所有的对象
NSArray *array = [Student MR_findAll];
for (Student *st in array) {
    NSLog(@"%@--%@",st.nsme,st.address);
}
//2.2精确查找 按条件取出对象
NSArray *arrays = [Student MR_findByAttribute:@"nsme" withValue:@“张三”];
for (Student * stu in arrays) {
    NSLog(@"%@********%@",stu.nsme,stu.address);
}
//3.修改数据
//3.1赋值
stu.nsme = @“李四”;
stu.address = @“上海某某地”;
//3.2 保存
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

//4.删除
//4.1
[stu MR_deleteEntity];
//4.2保存
 [[NSManagedObjectContext MR_defaultContext ] MR_saveToPersistentStoreAndWait];

//指定本地数据库的文件路径
[MagicalRecord setupCoreDataStackWithStoreNamed:@"coredata.db"];
收藏
0
sina weixin mail 回到顶部