1.4.2.3. SETUP(Core Data 应用程序实践指南)
初始化Core Data的三个方法:
- init,初始化托管对象模型、持久化存储协调器、托管对象上下文
- (id)init {
if (debug == ) {
NSLog(@"Running %@ '%@'",self.class, NSStringFromSelector(_cmd));
} if (self = [super init]) {
_model = [NSManagedObjectModel mergedModelFromBundles:nil];
_coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:_model];
_context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[_context setPersistentStoreCoordinator:_coordinator];
} return self;
}_model 的mergedModelBundles的参数为nil,表示要用main bundle里面所有的数据模型文件都初始化进来。如果有多个模型文件需要合并,可以把元素类型为NSBundles的NSArray数组传给mergedModelBundles。
NSMainQueueConcurrencyType表示在主线程队列运行。
- loadStore:创建并加载持久化存储区
- (void)loadStore {
if (debug == ) {
NSLog(@"Running %@ '%@'",self.class, NSStringFromSelector(_cmd));
} if (_store) {return;} NSError *error = nil;
_store = [_coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[self storeURL] options:nil error:&error]; if (!_store) {
NSLog(@"Failded to add store. Error: %@", error);
abort();
}else if (debug == ){
NSLog(@"Successfully add store: %@", _store);
}
}
- 加载持久化存储区
- (void)setupCoreData {
if (debug == ) {
NSLog(@"Running %@ '%@'",self.class, NSStringFromSelector(_cmd));
} [self loadStore];
}
1.4.2.3. SETUP(Core Data 应用程序实践指南)的更多相关文章
- Core Data 应用程序实践指南(Core Data 应用程序实践指南)
译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...
- 1.1.Core Data是什么(Core Data 应用程序实践指南)
Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...
- 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
项目创建时会有 “Use Core Data" ,但是,有时没有勾选这个选项,那么就要手动链接Core Data Framework. 选中 Grocery Dude Target Gene ...
- 1.2.Core Data 的适用场合(Core Data 应用程序实践指南)
如果应用程序要保存的设置数据太多,以致NSUserDefaults及“属性列表“(property list)这种简单的存储方案无法应付.不需要再"重新发明轮子"(reinvent ...
- 1.1.1.持久化存储协调器(Core Data 应用程序实践指南)
持久化存储协调器(persistent store coordinator)里面包含一份持久化存储区,而存储区里又含有数据表里的若干行数据. 与原子存储不同,SQLite数据库会在用户提交变更日志时进 ...
- 2.1. 托管对象模型是什么(Core Data 应用程序实践指南)
托管对象模型是一种数据结构.在这里,数据结构.纲要.对象图.数据模型.托管对象模型这些术语是一个意思.它们是对同一个东西不同场景的描述.比如,对Core Data 而言是托管对象模型,对设计器来说是对 ...
- 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...
- 3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)
持久化存储协调器会试着用新版的模板打开原来的持久化存储区,但是那是旧的模板,旧的格式,当然会出错.现在要做的就是迁移现有的持久化数据区,以便跟新模型匹配. 怎么进行迁移呢? 在什么时候进行迁移? 在向 ...
- 3.2. 添加模板版本(Core Data 应用程序实践指南)
为了不像3.1那样崩溃,修改模型之前先创建新的模型版本.添加之后,会生成一个新的xcdatamodel文件,并且跟原来的内容完全一样,这有意思了,但是不要删除原来旧版的模型.旧的模型有助于把原来持久化 ...
随机推荐
- UIImageView动画
NSMutableArray *arrM = [NSMutableArray array]; // 2.加载所有图片 ; i <= ; i++) { NSString *imageName = ...
- UCI
数据库是加州大学欧文分校(UniversityofCaliforniaIrvine)提出的用于机器学习的数据库,这个数据库目前共有187个数据集,其数目还在不断增加,UCI数据集是一个常用的标准测试数 ...
- iOS的基本图形绘制
绘图的步骤: 1.获取上下文 2.创建路径(描述路径) 3.把路径添加到上下文 4.渲染上下文 通常在- (void)drawRect:(CGRect)rect这个方法里面绘制图形 为什么要再draw ...
- Qt5:Qt中一些函数功能介绍
1 .setContentsMargins 该函数用于设置窗口客户区中,四周空白边框的尺寸 , 类似于 word 中的 页边距设置 2.canonical Path 返回文件路径的规范路径 , 也就 ...
- Python3基础 函数 默认值参数示例
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- Query插件之ajaxFileUpload使用方法——input.change()事件的时候实现文件上传
点击下载 这是HTML <input id="uploadedfile" name="uploadedfile" type="file" ...
- Gson通过借助TypeToken获取泛型参数的类型的方法
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...
- 现在都是python 单独开发框架 执行脚本,处理结果,发报告之类的
现在都是python 单独开发框架 执行脚本,处理结果,发报告之类的
- nginx 支持pathinfo
location ~ \.php { #去掉$ root H:/PHPServer/WWW; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.ph ...
- html的URL参数传值问题
在URL中的参数传值时,例如:www.nihao.com?id=001 ,= 两边不能有空格,不然PHP在通过$_GET['id']获取时会出现传值为空.