勾选 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的使用的更多相关文章

  1. coreDate 简化版

    建表: 自动生成: 代码: // // RootViewController.m // coreDate 简化版 #import "RootViewController.h" #i ...

  2. iOS移动开发CoreDate讲解

    ----欢迎------- 在移动端开发,数据持久化保存是基本要素,没钱在2014年之后退出了coredate,本持久化基于oc作为开发,方便程序人员操作.与SQL数据库,MySQL相比,优点颇多. ...

  3. GitHub上值得关注的iOS开源项目

    1.AFNetworking地址:https://github.com/AFNetworking/AFNetworking用于网络请求 2.JSONKit地址:https://github.com/j ...

  4. magento获取页面url的办法还有magento的常用函数

    <?php echo $this->getStoreUrl('checkout/cart');?> 获取结账页面的url:<?php echo $this->getUrl ...

  5. 高级iOS开发工程师的面试题

    1:CALayer与UIView的区别是什么? 两者最大的区别就是:涂层不会直接渲染到屏幕上: UIView是iOS界面元素的基础,所有界面元素都是继承于它,他的本身全是由CoreAnimation来 ...

  6. oc常见误区

    1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然 ...

  7. iOS开发——面试指导

    iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...

  8. Core Data数据持久性存储基础教程-备用

    摘要 就像我一直说的,Core Data是iOS编程,乃至Mac编程中使用持久性数据存储的最佳方式,本质上来说,Core Data使用的就是SQLite,但是通过一系列特性避免了使用SQL的一些列的麻 ...

  9. ios NSUserDefaults存储数据(偏好设置)

    ios NSUserDefaults存储数据(偏好设置) 1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据包括:NSString, NSNumber, ...

随机推荐

  1. 配置RHadoop与运行WordCount例子

    1.安装R语言环境 su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch. ...

  2. Calculating a bearing between points in location-aware apps

    https://software.intel.com/en-us/blogs/2012/11/30/calculating-a-bearing-between-points-in-location-a ...

  3. 30 分钟 Java Lambda 入门教程

    Lambda简介 Lambda作为函数式编程中的基础部分,在其他编程语言(例如:Scala)中早就广为使用,但在Java领域中发展较慢,直到java8,才开始支持Lambda. 抛开数学定义不看,直接 ...

  4. 转】Maven学习总结(四)——Maven核心概念

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4051819.html 感谢! 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中 ...

  5. Spark RDD概念学习系列之细谈RDD的弹性(十六)

    细谈RDD的弹性  所谓,弹性,是指在内存不够时可以与磁盘进行交换. 弹性之一:自动的进行内存和磁盘数据存储的切换   弹性之二:基于Lineage(血缘)的高效容错   弹性之三:Task如果失败会 ...

  6. 问题-XE8客户端访问Webservice时报“no selected dom vendor”

    问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...

  7. 【Java】IO技术的使用——用IO实现大文件的复制

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827481.html 用IO进行文件复制,实质就是用FileInputStream链接要复制的文件,按一定规模 ...

  8. [转]javascript对联广告、漂浮广告封装类,多浏览器兼容

    封装的JS方法: function $$(element){ if(arguments.length>1){ for(var i=0,elements=[],length=arguments.l ...

  9. 错误内存【读书笔记】C程序中常见的内存操作有关的典型编程错误

    题记:写这篇博客要主是加深自己对错误内存的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 对C/C++程序员来讲,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构成的 ...

  10. 用DirectShow实现视频採集-流程构建

    DirectShow作为DirectX的一个子集,它为用户提供了强大.方便的多媒体开接口,而且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序.前面一篇文章已经对Dir ...