Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句

1.创建项目的时候勾选Use the CoreData

2.创建好之后就会在左边的文件名那里看到一个CoreData.xcdatamodeldde文件

3.点击之后在Xcode的中间可以看到它的内容,之后点击左下角的Add Entity可以添加表(表名可以修改,但首字母必须大写)

4.在表里面添加属性

5.创建表的数据模型

(1)点击New File

(2)点击next

(3)点击next

(4)要创建哪个表的数据模型就勾选哪一个,然后点击next

//    读取coreData

//    1、读取managedObjectModel

//    2、找到里面所有实体的名字[model entitiesByName]

//    3、找到要读取的实体NSEntityDescription *entry = entryDic[@"UserInfo"];

//    4、初始化 查询对象 NSFetchRequest *request = [[NSFetchRequest alloc]init];

//    5、通过上下文 查找 NSArray *list = [context executeFetchRequest:request error:nil];

  NSManagedObjectContext *context = [[AppDelegate appDelegate] managedObjectContext];

     //    1、读取managedObjectModel

     NSManagedObjectModel *model = [[AppDelegate appDelegate] managedObjectModel];

     //    2、找到里面所有实体的名字[model entitiesByName]

     NSDictionary *entitiesDic = [model entitiesByName];

     //    3、找到要读取的实体NSEntityDescription *entry = entryDic[@"UserInfo"];

     NSEntityDescription *entity = entitiesDic[@"Userinfo"];

     //    4、初始化 查询请求对象 NSFetchRequest

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

     request.entity = entity;

     //    request.predicate

     //    request.fetchLimit

     //    request.fetchOffset

     //    5、通过上下文开始查询

    aList = [context executeFetchRequest:request error:nil];

     NSLog(@"%@",aList);

     if (aList.count!=) {

         [MytableView reloadData];

 //        [MytableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation: UITableViewRowAnimationNone];

     }

注:appDelegate这个方法是在AppDelegate文件里面定义的,在.h文件声明

+(AppDelegate *)appDelegate;

在.m文件实现

+(AppDelegate *)appDelegate{
return (AppDelegate *)[UIApplication sharedApplication].delegate;
}

操作coreData

1、不管增删改查都需要先初始化 上下文[app managedObjectContext]

2、插入具体内容到上下文

+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;

3、保存 saveContext

- (void)addEntity{

    NSManagedObjectContext * conText = [[AppDelegate appDelegate]managedObjectContext];
Massage * massage = [NSEntityDescription insertNewObjectForEntityForName:@"Massage" inManagedObjectContext:conText];
[massage setValue:postView.titleTextFild.text forKey:@"title"];
[massage setValue:postView.contentTextFild.text forKey:@"content"];
Userinfo *userinfo = [NSEntityDescription insertNewObjectForEntityForName:@"Userinfo" inManagedObjectContext:conText];
NSArray * List = @[@"陈3.jpg",@"陈2.jpg",@"是1.jpg",@"是3.jpg"];
int arc = arc4random()%List.count; UIImage *img = [UIImage imageNamed:List[arc] ];
[userinfo setValue:@"hehehe" forKey:@"name"];
[userinfo setValue:@() forKey:@"age"];
[userinfo setValue:UIImageJPEGRepresentation(img, ) forKey:@"headImage"];
[userinfo setValue:massage forKey:@"massage"]; [[AppDelegate appDelegate] saveContext];
}

iOS -数据持久化之CoreData的更多相关文章

  1. iOS 数据持久化(扩展知识:模糊背景效果和密码保护功能)

    本篇随笔除了介绍 iOS 数据持久化知识之外,还贯穿了以下内容: (1)自定义 TableView,结合 block 从 ViewController 中分离出 View,轻 ViewControll ...

  2. iOS -数据持久化方式-以真实项目讲解

    前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎 ...

  3. iOS数据持久化方式及class_copyIvarList与class_copyPropertyList的区别

    iOS数据持久化方式:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite3CoreData沙盒:iOS程序默认情况下只能访问自己的程序目录,这 ...

  4. iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver

    IOS数据持久化的方式分为三种: 属性列表 (plist.NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等 归档(又名 ...

  5. IOS数据持久化之归档NSKeyedArchiver

    IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List .NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data ...

  6. ios数据持久化--CoreData框架的介绍和使用

    1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在Mac OS X 10.5Leopard及以后的版本中 ...

  7. iOS数据持久化-OC

    沙盒详解 1.IOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文 ...

  8. iOS数据持久化

    在iOS中,实现数据持久化一般分为4大种: 1.属性列表 2.对象归档 3.SQLite 4.Core Data 一.属性列表 NSUserDefaults类的使用和NSKeyedArchiver有很 ...

  9. 转载 -- iOS数据持久化存储

    作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...

随机推荐

  1. 笔记- iphone手机音频AAC视频H264推流(一) iphone手机推流最佳方案

    这几个月一直在做iphone手机音视频的东西,由于个人比较懒,所以一直没整理,现在闲的蛋疼,并且以后项目要搁置了,在这里记录一下我做的iphone手机推流的东西. 项目都是个人的调研与实验,可能很多不 ...

  2. unity编辑器的搜索框好特么坑啊,居然不支持*号通配符

    上图 t:Scene或者点搜索框旁边的 分类按钮 用*.unity是什么也搜索不出来的

  3. IntelliJ IDEA 使用教程 - AS3篇

    喜欢IntelliJ IDEA的黑色皮肤,所以研究了下这个IDE的使用: 安装ActionScript Profiler插件: IDEA默认不带分析功能,需要下载安装该插件才行: File->S ...

  4. 刚制作完的SAP Sybase ASE15.7 [Sybase Central] 客户端

    支持32位和64位windows系统.无需其它任何包.原汁原味. 支持的数据库版本,应该从15.0开始都支持. 下载地址: http://download.csdn.net/detail/iihero ...

  5. C# 条形码 生成函数 (Code 128 标准

    C# 条形码 生成函数 (Code 128 标准参考:GB/T 18347-2001) 最近在做单据打印,发现客户要求用到条形码,在网上找了,发现只有一些条形码的标准,但打出来发现根本不能扫,还要加某 ...

  6. 查看linux中的TCP连接数【转】

     转自:http://blog.csdn.net/he_jian1/article/details/40787269 查看linux中的TCP连接数 本文章已收录于:   计算机网络知识库  分类: ...

  7. ThinkPHP CURD方法盘点:table方法

    table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表. 用法 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:切换操作的数据表: ...

  8. Hive权限介绍

    一.开启权限 眼下hive支持简单的权限管理,默认情况下是不开启.这样全部的用户都具有同样的权限.同一时候也是超级管理员.也就对hive中的全部表都有查看和修改的权利,这样是不符合一般数据仓库的安全原 ...

  9. FloatingWindow

    https://github.com/dev0x10/android-bubble https://github.com/dev0x10/FloatingView https://github.com ...

  10. hdu 4044 GeoDefense (树形dp | 多叉树转二叉树)

    题目链接:hdu-4044 题意 这是一个塔防游戏,地图是一个n个编号为1-n的节点的树, 节点1是敌人的基地,其他叶子节点都是你的基地.    敌人的基地会源源不断地出来怪兽,为了防止敌人攻进你的基 ...