简介

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

1.新建工程,记得勾选Use Core Data

2.建立好以后可以看到xxx.xcdatamodeld,在这里可以添加实体和实体的属性。需要注意的是:实体名字必须以大写开头。

3.然后新建一个file,记得是NSManagedObject cubclass

4.勾选自己建立的工程

5、勾选建立的实体

6.我们就可以看到建立好的实体是有4个文件

7.

#import "ViewController.h"

#import "Dog.h"

#import "AppDelegate.h"

#import <CoreData/CoreData.h>

@interface ViewController ()

{

AppDelegate *app;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

app = [UIApplication sharedApplication].delegate;

[self createButtons];

}

//创建按钮

- (void)createButtons{

NSArray *array = @[@"增", @"删", @"改", @"查"];

for (int i = 0; i < 4; i++) {

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(30 + i * 60, 100, 40, 40);

[button setTitle:array[i] forState:UIControlStateNormal];

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[button addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];

button.tag = i;

[self.view addSubview:button];

}

}

- (void)buttonDidClicked:(UIButton *)button{

switch (button.tag) {

case 0:

//add

[self coreDateAdd];

break;

case 1:

//delete

[self coreDataDelete];

break;

case 2:

//update

[self coreDataUpdate];

break;

case 3:

//search

[self coreDataSearch];

break;

default:

break;

}

}

//增

- (void)coreDateAdd{

Dog *dog = [NSEntityDescription insertNewObjectForEntityForName:@"Dog" inManagedObjectContext:app.managedObjectContext];

dog.name = [NSString stringWithFormat:@"汪汪%d", arc4random()%10];

dog.sex = @"公";

dog.age = [NSString stringWithFormat:@"%d", arc4random()%15];

[app.managedObjectContext save:nil];

NSLog(@"add success");

}

//删

- (void)coreDataDelete{

//读取类

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:app.managedObjectContext];

//建立请求

NSFetchRequest *request = [[NSFetchRequest alloc] init];

[request setEntity:entity];

//设置检索条件

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@", @"汪汪7"];

[request setPredicate:predicate];

NSArray *array = [app.managedObjectContext executeFetchRequest:request error:nil];

if (array.count) {

for (Dog *dog in array) {

[app.managedObjectContext deleteObject:dog];

}

[app.managedObjectContext save:nil];

NSLog(@"delete succeed");

} else{

NSLog(@"no data");

}

}

//改

- (void)coreDataUpdate{

//读取类

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:app.managedObjectContext];

//建立请求

NSFetchRequest *request = [[NSFetchRequest alloc] init];

[request setEntity:entity];

//设置检索条件

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name!=%@", @"汪汪23"];

[request setPredicate:predicate];

//遍历

NSArray *array = [app.managedObjectContext executeFetchRequest:request error:nil];

if (array.count) {

for (Dog *dog in array) {

dog.name = @"汪汪23";

}

[app.managedObjectContext save:nil];

NSLog(@"update succeed");

} else{

NSLog(@"no result");

}

}

//查

- (void)coreDataSearch{

//读取类

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:app.managedObjectContext];

//建立请求

NSFetchRequest *request = [[NSFetchRequest alloc] init];

//建立请求的是哪一类

[request setEntity:entity];

//遍历数组

NSArray *array = [app.managedObjectContext executeFetchRequest:request error:nil];

for (Dog *dog in array) {

NSLog(@"%@", dog.name);

}

}

@end

转载于:https://www.cnblogs.com/hmzxwky/p/5474229.html

coreData使用相关推荐

  1. iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用

    CoreData的介绍和使用  源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...

  2. ios技术篇-CoreData

    ios技术篇-CoreData 上一篇: iOS技术篇-CocoaPods       目录        下一篇:

  3. 数据持久化(六)之Using CoreData with MagicalRecord

    第五节里面,我介绍了CoreData的配置和主要的增删改查,可能非常多人会认为用它真繁琐.这里,我再介绍网上大神对它进行了人性化封装的第三方MagicalRecord,正如FMDB对sqlite进行了 ...

  4. coredata Lightweight Migration 心得

    关于coredata 网上的相关资料比较少,大部分是基本用法.于是便找到苹果官方文档进行深入学习. 分享一下心得,如果用了coredata 必须懂得 coredata Migration,否则app版 ...

  5. CoreData的简单使用

    一.CoreData的简单使用 准备工作 创建数据库 新建文件,选择CoreData -> DataModel 添加实体(表),Add Entity 给表中添加属性,点击Attributes下方 ...

  6. Coredata — 入门使用

    CoreData的底层实现尽管是使用的sqlite数据库.但是CoreData在使用起来但是和sqlite大相径庭.可能你会发现你连一句sql语句都不要写.CoreData存在于应用程序和持久化存储区 ...

  7. 数据库结构Sqlite与CoreData

    改章节是一篇关于数据库结构的帖子 这两个就不是同一个层面的东西,core data是ORM框架+objects graph,它可以选择sqlite,xml,plist或是其他方式作为持久化方案.所以如 ...

  8. iphone开发之数据库CoreData

    CoreData 介绍 在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作.当然你也可以通过别人封装之后的一些简单框架,使得你的操 ...

  9. 使用CoreData的轻量级自动数据迁移

    使用IOS的CoreData进行存储很方便,CoreData已经帮我们做了很多基础的工作,一般情况下没必要自己操作数据库了. 在开发中修改了实体模型,可能会遇到schema incompatibili ...

  10. 让CoreData更简单些

    从简书迁移到掘金 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍如何让CoreData的使用变得更加简单明了, 方便亲民. 全文约六千字, 预计花 ...

最新文章

  1. 设计模式--门面(Facade)模式
  2. MongoDB学习笔记一ID自增长
  3. c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序
  4. linux新建好文件后怎么编译,使用autoconf生成Makefile并编译工程的步骤
  5. 尽力去帮助一个陌生人
  6. Ubuntu 下配置lamp环境
  7. php if throw,Laravel throw_if 和 throw_unless 辅助函数
  8. html计算一个数组所有元素的和,函数bsxfun,两个数组间元素逐个计算的二值操作...
  9. Google发布Chrome 8
  10. Flex动态创建多个曲线图+柱形图
  11. 拓端tecdat|R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
  12. 下载Googleearth地图作为底图显示曝光点
  13. vue.js入门以及和echarts整合之柱状图和中国地图
  14. 怎样做好微商 怎样推广引流客源效果好
  15. 如何使用Xpose绕过APP自定义证书验证去抓Https包
  16. STM32F401标准固件库配置
  17. tplink 无线打印服务器,tplink打印服务器设置
  18. Java爬虫爬取360doc个人图书馆
  19. 上海迪士尼乐园重新开放,欢迎游客回到充满欢乐的奇妙世界
  20. 商汤绝影车路协同“进城”!10+个智能网联应用,100+场景算法应用,感知范围扩大1000倍...

热门文章

  1. 自学python推荐书籍2019-2019最强Python书单!
  2. pythonurllib模块-urllib库详解 --Python3
  3. python到底可以做什么-Python究竟是什么?能干嘛?
  4. python读取大文件-Python如何读取、拆分大文件
  5. python怎么把数据写入txt-如何将python中文件写入TXT
  6. 零基础学python需要多久-零基础学习Python开发需要多长时间?
  7. python必背100代码-100行Python代码实现一款高精度免费OCR工具
  8. python 自动化-Python API 自动化实战详解(纯代码)
  9. python好学吗一般要学多久-转行学Python开发难吗,月薪过万需要多久
  10. python面试-Python面试