美文网首页
iOS中的数据存取(CoreData)

iOS中的数据存取(CoreData)

作者: 大慈大悲大熊猫 | 来源:发表于2015-03-26 15:57 被阅读1252次

最近在研究iOS的数据存取,就简单的总结一下。

CoreData

1.是什么

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

2.有什么用

简单的说就是能将OC的对象和数据相互转化,利用Core Data框架,可以轻松地将数据库里面的2条记录转换成2个OC对象,也可以轻松地将2个OC对象保存到数据库中,变成2条表记录,而且不用写一条SQL语句。

3.怎么用

选择Data Model

新建一个实体Entity,命名为Student,添加两个属性。

新建实体Teacher,一个属性name。建立和Student实体的关系(Inverse填Student后,Student的Inverse属性也会自动补上)。

下面就是见证奇迹的时刻了,创建NSManagedObject,即利用Core Data取出的实体都是NSManagedObject类型的,能够利用键-值对来存取数据。

这样 勾选这俩

你会发现Teacher和Student类都自动创建了,现在就能随意使用了。

那么问题来了,这样就完了吗?

当然没有!说到数据库和数据存取就离不开,增、删、改、查。

搭建上下文环境

当然这一步一般都在AppDelegate里搭建好了,如果够懒得话,就直接调用。

AppDelegate*app = [UIApplicationsharedApplication].delegate;

NSManagedObjectContext*context = app.managedObjectContext;

这种方式创建的sqlite数据库名 默认为 工程名.sqlite 但有要求的话,也可自行修改。

Student *p =[NSEntityDescription insertNewObjectForEntityForName:

@"Student"inManagedObjectContext:context];

p.name=@"李四";

p.no=@11;

Teacher *teacher = [NSEntityDescription insertNewObjectForEntityForName:

@"Teacher"inManagedObjectContext:context];

teacher.name=@"李老师";

p.teacher = teacher; 

//保存设置 把内存中的数据同步到数据库文件当中

[app saveContext];

NSFetchRequest*request = [[NSFetchRequest alloc]initWithEntityName:@"Student"];

NSArray*persons = [context executeFetchRequest:request error:nil];

for(Person*p in persons) {

[context deleteObject:p];

[app saveContext];

}

NSFetchRequest*request = [[NSFetchRequest alloc]initWithEntityName:@"Student"];

NSArray*persons = [context executeFetchRequest:request error:nil];

for(Person*p in persons) {

 if([p.name isEqualToString:@"李四"])

  {

    p.name=@"王五";

    [app saveContext];

  }

}

//创建查询请求

NSFetchRequest* request = [[NSFetchRequest alloc]initWithEntityName:@"Student"];

NSArray*persons = [context executeFetchRequest:request error:nil];

for(Person *p in persons) {

NSLog(@"%@ %@",p.name,p.no);

NSLog(@" %@",p.teacher.name);

}

Tips

写完感觉有点乱,记录的较零碎,研究的也较浅,继续学习!

Magical Record

相关文章

  • iOS中的数据存取(CoreData)

    最近在研究iOS的数据存取,就简单的总结一下。 CoreData 1.是什么 Core Data是iOS5之后才出...

  • ios CoreData(一)

    CoreData简述 CoreData是ios系统推荐给我们的数据存储方案。在ios中数据存储有多种方式,包括NS...

  • CoreData的简单使用

    CoreData入门 CoreData简介 iOS开发中实现数据持久化存储的一种重要手段 提供了对象-关系映射的功...

  • Swift-CoreData简介

    iOS数据存储除了SQLite,FMDB,归档之外,项目中涉及最多的就是CoreData.CoreData底层数据...

  • CoreData学习

    Coredata第一课 认识coredata 问题 在iOS/Mac中我们有许多方式去持久化存储数据:NSUser...

  • CoreData之iOS10的改变

    ios10中的CoreData 在iOS中,CoreData有一些变化,主要是多了NSPersistentCont...

  • 数据持久化学习笔记

    在iOS开发中,常用的数据持久化方法共有四种:”属性列表“,”数据归档“,”SQLite“、”CoreData“ ...

  • iOS开发之数据存取

    转自——iOS开发之数据存取

  • 我的简书博文地图

    目录: iOS开发 web通信获取数据 iOS Networking 离线数据保存 我的女朋友CoreData和她...

  • [iOS]30分钟入门OC-CoreData框架

    一:什么是CoreData? CoreData是苹果公司封装的进行数据持久化的框架,首次在IOS3.0版本的系统中...

网友评论

      本文标题:iOS中的数据存取(CoreData)

      本文链接:https://www.haomeiwen.com/subject/ndxnxttx.html