数据存储-CoreData总结
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