博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据存储-CoreData总结
阅读量:4677 次
发布时间:2019-06-09

本文共 1584 字,大约阅读时间需要 5 分钟。

 

 

CoreData

/*英译  Entity:实体 Attributes:属性 binary:二进制 persistent:持续化 coordinator:协调者 meging:合并 configuration:配置 representation:展示 picker:选择 source:来源 representation:展示 fetch:抓取* cashe:缓存 sort:排序 protocal:协议*/

 

PS:mARC->ARC retain->strong,建数据库要写单例,打开数据库要懒加载(init)

//懒加载

- (id)init

{

    self=[super init];/

    if(self){

        [self openDB];

    }

    return self;

}

//将获取文件写进数据库

准备1 :导入CoreData框架,添加头文件 -> 建模型组 -> 模型组中建CoreData及定义实体(建好数据模型,设置实体) -> 创建服务层组(services-DataManager用于交互数据库和程序) -> 单例方法初始化对象(工厂方法即可实现单例对象),懒加载打开数据库(创建时打开数据库)->设置打开数据库方法-实例化调度者(参数:包含模型,及为之前实体化的模型,要合并)-给调度者添加持久化存储数据库(参数:制定类型,指定沙盒中建立的数据表空文件的路径,错误)

>>>>>这部分将实体化的数据(模型)成功的放进沙盒中创建的好得(数据库)中了,即数据库,数据表建立完成并放到沙盒及拥有调度者<<<<<<<

准备2 :判断错误为nil时,实例化数据库操作的上下文(类似句柄)->设置上下文的调度属性为调度者(设置类的成员属性readonly为上下文,这样可以之后调度使用)

>>>>>  这样context就可以操纵数据库了 <<<<<<

 

准备3:要给上下文插入一个Person类型的实体 通过UI交互->Person拿到属性值->传给Person实体->传给上下文->上下文保存

>>>>>>从而通过"NSEntityDescription"添加实体到上下文的目的/即添加记录到数据库(虽然是合并的实体但是他会保存到数据库的对应的Person数据表中 )<<<<<

 

实例化模型并合并->实例化model的调度者->添加数据库 ->当数据库调度成功,初始化管理项目上下文,讲调度这赋值给上下文(上下文可用成员变量保存,以便日后操纵数据库)

 

//从照片库选择图片 UIImagePickerController

实例化照片选择器->指定照片来源->设置代理及可以编辑->显示选择器->实现代理方法->从info中选出照片(字典)并设置->关闭选择器

UIImage imageWithData<->UIImagePNG

//谓词

/*英译:  evaluate:评估 capacity:能力 filter:过滤 contains:包含 */

谓词就是定义一个规则

创建谓词->数组调用谓词方法过滤

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K CONTAINS '8'", @"name"];

 

// 对数组进行过滤

NSLog(@"匹配结果 %@", [arrayM filteredArrayUsingPredicate:predicate]);

//UITableView的几个方法 commit:交付

可编辑,做删除canEdit

提交编辑commitEdit

 

 

fmdb xmpp marc 内存  c++

lbs 冒泡 block定义 nsstring 数组 内存 t

转载于:https://www.cnblogs.com/ly1973/p/5394409.html

你可能感兴趣的文章
饥饿的小易(规律,同余大数)
查看>>
ats透明代理
查看>>
PHP 小代码
查看>>
2016/03/16 codes
查看>>
2018年7月21日工作总结
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
Android字体加粗
查看>>
asp.net运行机制与页面生命周期
查看>>
【Qt常见问题】系列01
查看>>
windows和ubuntu虚拟机设置共享文件夹,在windows中用source insight阅读和编写代码,在linux中用交叉编译工具编译。...
查看>>
js入坑第一天
查看>>
ubuntu16.04 Detectron目标检测库配置(包含GPU驱动,Cuda,Caffee2等配置梳理)
查看>>
D - Going Home POJ - 2195 网络流
查看>>
Java基础知识强化93:算一下你来到这个世界多少天的案例
查看>>
Java基础知识强化之IO流笔记35:InputStreamReader(Reader字符流的子类)2种read数据方式...
查看>>
hdu-4856 Tunnels 状压DP
查看>>
javascript实现可以拖动的层示例(层拖动,兼容IE/FF)
查看>>
leetcode[30]Substring with Concatenation of All Words
查看>>
福建武夷山
查看>>