coreData使用
简介
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使用相关推荐
- iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用
CoreData的介绍和使用 源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...
- ios技术篇-CoreData
ios技术篇-CoreData 上一篇: iOS技术篇-CocoaPods 目录 下一篇:
- 数据持久化(六)之Using CoreData with MagicalRecord
第五节里面,我介绍了CoreData的配置和主要的增删改查,可能非常多人会认为用它真繁琐.这里,我再介绍网上大神对它进行了人性化封装的第三方MagicalRecord,正如FMDB对sqlite进行了 ...
- coredata Lightweight Migration 心得
关于coredata 网上的相关资料比较少,大部分是基本用法.于是便找到苹果官方文档进行深入学习. 分享一下心得,如果用了coredata 必须懂得 coredata Migration,否则app版 ...
- CoreData的简单使用
一.CoreData的简单使用 准备工作 创建数据库 新建文件,选择CoreData -> DataModel 添加实体(表),Add Entity 给表中添加属性,点击Attributes下方 ...
- Coredata — 入门使用
CoreData的底层实现尽管是使用的sqlite数据库.但是CoreData在使用起来但是和sqlite大相径庭.可能你会发现你连一句sql语句都不要写.CoreData存在于应用程序和持久化存储区 ...
- 数据库结构Sqlite与CoreData
改章节是一篇关于数据库结构的帖子 这两个就不是同一个层面的东西,core data是ORM框架+objects graph,它可以选择sqlite,xml,plist或是其他方式作为持久化方案.所以如 ...
- iphone开发之数据库CoreData
CoreData 介绍 在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作.当然你也可以通过别人封装之后的一些简单框架,使得你的操 ...
- 使用CoreData的轻量级自动数据迁移
使用IOS的CoreData进行存储很方便,CoreData已经帮我们做了很多基础的工作,一般情况下没必要自己操作数据库了. 在开发中修改了实体模型,可能会遇到schema incompatibili ...
- 让CoreData更简单些
从简书迁移到掘金 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍如何让CoreData的使用变得更加简单明了, 方便亲民. 全文约六千字, 预计花 ...
最新文章
- 设计模式--门面(Facade)模式
- MongoDB学习笔记一ID自增长
- c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序
- linux新建好文件后怎么编译,使用autoconf生成Makefile并编译工程的步骤
- 尽力去帮助一个陌生人
- Ubuntu 下配置lamp环境
- php if throw,Laravel throw_if 和 throw_unless 辅助函数
- html计算一个数组所有元素的和,函数bsxfun,两个数组间元素逐个计算的二值操作...
- Google发布Chrome 8
- Flex动态创建多个曲线图+柱形图
- 拓端tecdat|R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
- 下载Googleearth地图作为底图显示曝光点
- vue.js入门以及和echarts整合之柱状图和中国地图
- 怎样做好微商 怎样推广引流客源效果好
- 如何使用Xpose绕过APP自定义证书验证去抓Https包
- STM32F401标准固件库配置
- tplink 无线打印服务器,tplink打印服务器设置
- Java爬虫爬取360doc个人图书馆
- 上海迪士尼乐园重新开放,欢迎游客回到充满欢乐的奇妙世界
- 商汤绝影车路协同“进城”!10+个智能网联应用,100+场景算法应用,感知范围扩大1000倍...
热门文章
- 自学python推荐书籍2019-2019最强Python书单!
- pythonurllib模块-urllib库详解 --Python3
- python到底可以做什么-Python究竟是什么?能干嘛?
- python读取大文件-Python如何读取、拆分大文件
- python怎么把数据写入txt-如何将python中文件写入TXT
- 零基础学python需要多久-零基础学习Python开发需要多长时间?
- python必背100代码-100行Python代码实现一款高精度免费OCR工具
- python 自动化-Python API 自动化实战详解(纯代码)
- python好学吗一般要学多久-转行学Python开发难吗,月薪过万需要多久
- python面试-Python面试