CoreDate的使用
勾选 xcode的 CoreDate会帮我们自动创建 CoreData 但是我们通常不那样使用,通常把 CoreDate 在单利类中创建,
//
// ZYDAO.h
// StoryboardTest
//
// Created by wanglixing on 15/11/27.
// Copyright © 2015年 zzz. All rights reserved.
// #import <Foundation/Foundation.h>
#import "People.h" @interface ZYDAO : NSObject + (instancetype)sharedDAO; - (People* )insertPeopleWithName:(NSString* )name phone:(NSString* )phone; - (NSArray* )selectAllPeople; - (void)updatePeople; - (void)deletePeople:(People* )people; @end
//
// ZYDAO.m
// StoryboardTest
//
// Created by wanglixing on 15/11/27.
// Copyright © 2015年 zzz. All rights reserved.
// #import "ZYDAO.h"
@import CoreData; NSString* const PEOPLE = @"People"; @interface ZYDAO () {
NSManagedObjectModel* _model;
NSPersistentStoreCoordinator* _coordinator;
NSManagedObjectContext* _context;
} @end @implementation ZYDAO + (instancetype)sharedDAO {
static ZYDAO* dao = nil; static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
dao = [[ZYDAO alloc] init];
}); return dao;
} - (id)init {
if (self = [super init]) {
NSURL* modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"]; _model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; _coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:_model]; NSURL* sqliteURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"Model.sqlite"]; if (![_coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:sqliteURL options:nil error:nil]) {
NSLog(@"打开数据库失败");
} _context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; [_context setPersistentStoreCoordinator:_coordinator];
} return self;
} - (People* )insertPeopleWithName:(NSString* )name phone:(NSString* )phone {
People* people = [NSEntityDescription insertNewObjectForEntityForName:PEOPLE inManagedObjectContext:_context]; people.name = name;
people.phone = phone; //把修改同步到数据库。
[_context save:nil]; return people;
} - (NSArray* )selectAllPeople {
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:PEOPLE]; return [_context executeFetchRequest:request error:nil];
} - (void)updatePeople {
[_context save:nil];
} - (void)deletePeople:(People* )people {
[_context deleteObject:people]; [_context save:nil];
} @end
CoreDate的使用的更多相关文章
- coreDate 简化版
建表: 自动生成: 代码: // // RootViewController.m // coreDate 简化版 #import "RootViewController.h" #i ...
- iOS移动开发CoreDate讲解
----欢迎------- 在移动端开发,数据持久化保存是基本要素,没钱在2014年之后退出了coredate,本持久化基于oc作为开发,方便程序人员操作.与SQL数据库,MySQL相比,优点颇多. ...
- GitHub上值得关注的iOS开源项目
1.AFNetworking地址:https://github.com/AFNetworking/AFNetworking用于网络请求 2.JSONKit地址:https://github.com/j ...
- magento获取页面url的办法还有magento的常用函数
<?php echo $this->getStoreUrl('checkout/cart');?> 获取结账页面的url:<?php echo $this->getUrl ...
- 高级iOS开发工程师的面试题
1:CALayer与UIView的区别是什么? 两者最大的区别就是:涂层不会直接渲染到屏幕上: UIView是iOS界面元素的基础,所有界面元素都是继承于它,他的本身全是由CoreAnimation来 ...
- oc常见误区
1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然 ...
- iOS开发——面试指导
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...
- Core Data数据持久性存储基础教程-备用
摘要 就像我一直说的,Core Data是iOS编程,乃至Mac编程中使用持久性数据存储的最佳方式,本质上来说,Core Data使用的就是SQLite,但是通过一系列特性避免了使用SQL的一些列的麻 ...
- ios NSUserDefaults存储数据(偏好设置)
ios NSUserDefaults存储数据(偏好设置) 1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据包括:NSString, NSNumber, ...
随机推荐
- 有关OOM KILLER的一些理解
Linux下有一种OOM KILLER 的机制,它会在系统内存耗尽的情况下,启用自己算法有选择性的kill 掉一些进程. 一.为什么会有OOM killer 当我们使用应用时,需要申请内存,即进行ma ...
- Gradle – Spring 4 MVC Hello World Example – Annotation
In this tutorial, we will take the previous Gradle + Spring MVC XML example, rewrite it to support @ ...
- jquery easyui的扩展验证
1.扩展通过$.extends($.fn.validatebox.defaults.rules,)扩展 $.extend( $.fn.validatebox.defaults.rules, { idc ...
- java 字符串String操作工具类
/** * StrKit. */ public class StrKit { /** * 首字母变小写 */ public static String firstCharToLowerCase(Str ...
- JMS开发(二):深入PTP,Pub-Sub两种模式
1.PTP模型 PTP(Point-to-Point)模型是基于队列(Queue)的,对于PTP消息模型而言,它的消息目的是一个消息队列(Queue),消息生产者每次发送消息总是把消息送入消息队列中, ...
- quartz源码解析(一)
本文的起因源于一次quartz的异常,在win2003正常运行的程序放在linux环境就抛出异常了,虽然找出异常没花我多长时间,不过由此加深了对quzrtz的了解:古人说,三折肱,为良医,说明经验对于 ...
- .NET的Snk使用方法
保护你Asp.Net生成的DLL和Code不被别人反编译 大家做项目开发一般都是分层的,比如UI层,业务层,数据访问层.业务层引用数据访问层的DLL(比如 dataAccess.dll),并使用da ...
- PostgreSQL中,database,schema,table之间关系
从逻辑上看,schema,table,都是位于database之下. 首先,在postgres数据库下建立表(相当于建立在public schema下): [pgsql@localhost bin]$ ...
- SQL Server中DML语句要申请的锁
对于select语句: 1.当採用表扫描时,会直接锁定page,而不是锁定详细的某条记录,所以会有这些锁: A.数据库S锁 B.表的IS锁 C.页的S锁 2.当採用索引来查找数据时,会锁定详细的记录, ...
- 【智能家居篇】wifi在智能家居中的应用
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在设计智能家居系统方案时,一个很关键的point就是组网方式.组网方式关系到整个智能家居系统的稳定性.可扩展性.实时 ...