CoreData概略】的更多相关文章

CoreData概略 分类: IOS开发2013-10-25 16:19 178人阅读 评论(0) 收藏 举报 CoreData是IOS对数据进行对象化管理的一种高效方式,提供了对数据的增.删.查.改基本操作免去了复杂的sqlite语句.其主要由下面一些概念组成. 1.NSManagedObjectContext.数据管理上下文,负责都数据进行有效的管理操作数据库中的数据. 2.NSManagedObjectModel.数据管理模型,包含数据库的各种信息,如实体,数据结构等信息. 3.NSPer…
CoreData 创建模型文件的过程 1.选择模板 2.添加实体 3.添加实体的属性[注意]属性的首字母必须小写 一.CoreData管理类(必备以下三个类对象) 1.CoreData数据操作的上下文,负责所有的数据操作,类似于SQLite的数据库连接句柄(NSManagedObjectContext) (1).初始化方式 //参数“ct”的类型 //三种类型 /* NSConfinementConcurrencyType 默认值,允许在特定的线程中执行,几乎不用 NSPrivateQueueC…
关于 CoreData的 objectID 官方文档有这样的表述:新建的Object还没保存到持久化存储上,那么它的objectID是临时id,而保存之后,就是持久化的id,不会再变化了. 那么,我想做的实验是,新建一个对象,再保存,再查看这个对象的objectID,看看系统会不会自动把这个新对象的 临时id 更改为 持久化的id. var person = NSEntityDescription.insertNewObjectForEntityForName("Person", in…
操作过程 Context想要获取值,先要告诉连接器,我要什么东西 链接器再告诉store, 你给我什么东西, store去找 找到之后返回给链接器,链接器再返回给Context          CoreData和sqlite的区别 CoreData是一个框架;sqlite是苹果使用别人开发好的一个动态库,本质是关系型数据库. CoreData是IOS平台下的一个数据持久化的方式;sqlite可以跨平台使用. 实现思路 首先找到CoreData文件夹 创建Person类,并且建立name属性 C…
Given an entity with an attribute firstName, Core Data automatically generates firstName, setFirstName:, primitiveFirstName, and setPrimitiveFirstName. The primary use of primitive accessors is to prevent key-value observing notifications from being…
Core Data数据持久化是对SQLite的一个升级,它是iOS集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类. (1)NSManagedObjectModel(被管理的对象模型) 相当于实体,不过它包含 了实体间的关系 (2)NSManagedObjectContext(被管理的对象上下文) 操作实际内容 作用:插入数据  查询  更新  删除 (3)NSPersistentStoreCoordinator(持久化存储助理) 相当于数据库的连接器 (4)NSF…
网上关于CoreData的教程能搜到不少,但很多都是点到即止,真正实用的部分都没有讲到,而基本不需要的地方又讲了太多,所以我打算根据我的使用情况写这么一篇实用教程.内容将包括:创建entity.创建relation.插入.更新.删除.查询.条件查询.排序.分组等操作,并分享本人对CoreData的一些独立见解.当然,一个完整的代码也是必须有的. 声明:本文演示数据中所涉及到的人名皆是本文作者虚构,如有雷同,纯属巧合. 目录 CoreData是不是ORM? 别的教程却讲了一大堆的东西 创建工程 逻…
关于CoreData和SQLite多线程访问时的线程安全问题 数据库读取操作一般都是多线程访问的.在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱.IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来解释对SQLite的线程安全访问. 一:FMDB的线程安全:(以读取图片为例) 1.没有线程安全的执行方式: //************** 数据库保存图片 ******************/…
前言: 学习了Sqlite数据之后认真思考了一下,对于已经习惯使用orm数据库的开发者或者对sql语句小白的开发者来说该如何做好数据库开发呢?这个上网搜了一下?看来总李多虑了!apple 提供了一种数据方式,它就是今天的主角:CoreData!我们一起来探究它是否能够满足我们项目开发的需要呢? CoreData介绍: Core Date是ios3.0后引入的数据持久化解决方案,它是是苹果官方推荐使用的,不需要借助第三方框架.Core Date实际上是对SQLite的封装,提供了更高级的持久化方式…
在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作.CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的comm…
之前在学习使用SQLite时, 需要编写大量的sql语句,完成数据的增删改查,但对于不熟悉sql语句的开发人员来说,难度较大,调试程序比较困难. 由此出现CoreData框架,将sql的操作转换成为对象的操作,无需编写sql语句.并且对数据库的操作也可以可视化. 1. CoreData 自iOS5出现的框架,提供了对象-关系映射(ORM)功能.通过此框架可将 对象 转化成数据,存储到SQLite 数据库文件中, 也能将SQLite数据库中的数据转化成对象.CoreData实际上是封装了的SQLi…
Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数据操作期间,我们不需要编写任何SQL语句.简单地用下图描述下它的作用: 模型文件   在Core Data,需要进行映射的对象称为实体(entity),而且需要使用Core Data的模型文件来描述app中的所有实体和实体属性.这里以Person(人)和Card(身份证)2个实体为例子,先看看实体属…
1.首先创建一个新的工程 记得勾选下面的 Use Core Data 万恶分割线———————————————————————— 然后点击Add Entity 创建一个类似于表名. 万恶分割线———————————————————————— 然后创建属性名 ,  选择属性的类型 万恶分割线———————————————————————— 然后你写好属性之后,就可以让系统帮你生成类了,点击倒数第三个(Create NSManagedObject Subclass...) 万恶分割线————————…
手动添加coreData: 1.在target-build phrase-Link binary with libraries里增加CoreData Framework 2.加入数据模型:command+N,选择Core Data创建模型 3.去AppDelegate中建立CoreData与Delegate关联,加入以下三个属性 NSManageObjectContext *//上下文 NSMangeObjectModel * NSPersistentStoreCoordinator *//持久…
CoreData 数据模型的版本控制 在项目中选择数据模型,然后选择Editor | Add Model Version 通过属性栏的ModelVersion current 选项进行版本的选择控制. 在新的版本中可以对模型的属性,关系等进行修改. 用新的版本的Core Data Model 运行,它将会正常启动,不会出现任何问题. 已创建的新版本的模型并且两个版本都可以从应用捆绑包中访问,因此执行轻量级迁移.…
CoreData 轻量级迁移 Core Data 的轻量级迁移可以处理对数据模型进行的简单更改,例如将新属性添加到现有实体中,轻量级迁移基本上与普通迁移相同,区别就是不需要映射模型,因为Core Data可以从数据模型推断映射.      在轻量级迁移过程中,Core Data再NSBundle allBundles 结果返回的捆绑包中查找模型.出于这个原因,常见的做法是将数据模型存储再应用捆绑包中. 通过生成推断的映射模型执行轻量级迁移,模型更改必须满足以下条件: 1. 将新属性添加到现在实体…
1.CoreData 数据库 CoreData 是 iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据.使用 CoreData 框架,程序员可以很轻松有效地通过面向对象的接口管理数据.CoreData 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的数据还原成 OC 对象,在数据操作过程中,无需编写任何 SQL 语句. 模型文件及实体(Entity).要使用 CodeDa…
一.CoreData数据库框架与Sqlite对比 Sqlite: 1.基于C接口, 需要使用sql语句, 代码繁琐 2.在处理大量数据时, 表关系更直观 3.在OC中不是可视化的 CoreData: 1. 可视化, 有undo/redo能力 2.可以实现多种文件格式NSSQLiteStoreType.NSBinaryStoreType.NSInMemoryStoreType.NSXMLStoreType 3.苹果官方API支持, 与iOS结合更紧密 二.CoreData核心对象 实体管理类:NS…
#import "ViewController.h" #import <CoreData/CoreData.h> #import "Person.h" @interface ViewController () @end @implementation ViewController { NSManagedObjectContext *_context; } - (void)viewDidLoad { [super viewDidLoad]; //获取上下文…
最近在修改一个程序BUG的时候遇到一个问题coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores. 但实际跑程序时.增删保存都没问题. 我花了很多的时间在问题抛出的地方在[contextsave:&error]; 后来发现,早在初期化_persistentStoreCoordinator 时就报错了 if (![_persistentStoreCoordinator addPersistentStoreWit…
    一  CoreData 了解 1 CoreData 数据持久化框架是 Cocoa API 的一部分,首先在iOSS5 版本的系统中出现:      它允许按照 实体-属性-值 模式组织数据:      并以 XML . 二进制文件.内存.自定义数据类型或者 SQLite 数据文件的格式持久化数据 2 CoreData 主要提供对象-关系映射(ORM)功能,把OC对象转化为数据保存到文件,也可以数据转化为OC对象 3 原理 : 是对 SQLite 的封装,开发者不需要接触SQL 语句,就可…
Core Data,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架 //参与对数据操作的全过程,监测数据对象的变化,以提供对undo/redo的支持及更新绑定到数据额UI @property (readonly, strong, nonatomic) NSManagedObjectContext *man…
// 1. 建立模型文件// 2. 建立CoreDataStack// 3. 设置AppDelegate 接着 // // CoreDataStack.swift // CoreDataStackDemo // // Created by wangbiao on 15/10/29. // Copyright © 2015年 wangbiao. All rights reserved. // import CoreData class CoreDataStack: NSObject { // MA…
CoreData简介: 什么是CoreData? Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数据操作期间,我们不需要编写任何SQL语句 CoreData 不能执行SQL语句 取而代之,操作的是对象.而常用的三方库 FMDB SQLite 可以直接SQL语句 CoreData和数据库有什么区别? CoreData是一个苹果原生的框架,它拥有像数…
CoreData用于做数据持久化,适合大数据量的存储和查询 CoreData不是数据库 CoreData可以使用数据库 ,XML等方式来存储数据 CoreData使用面向对象的方式操作数据 CoreData操作数据无需编写SQL语句 使用时 需要导入CoreData框架 //---------------------------------------------------------- NSManagedObjectContext 负责应用和数据库之间的交互 NSPersistentStor…
CoreData详解 介绍: 在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作.当然你也可以通过别人封装之后的一些简单框架,使得你的操作更加简单(如FMDB BNRPersistence). Cocoa框架本身提供了CoreData这个API可方便的让开发者通过操作对象的方式在操作数据库.CoreData是一个对象图(object graph)以及持久化的管理框架.我们可以通过CoreData创对象,设置好象之间的关系,然后…
先介绍一下什么是CoreData —— 它是在iOS5之后出现的一个框架,提供了对象-关系映射(ORM)的功能,既能够将OC对象转化成数据,保存在SQLite数据库文件中,也能将保存在数据库中的数据还原成OC对象.在此数据操作期间,我们不需要编写任何SQL语句,类似于著名的Hibernate持久化框架.不过功能肯定没其强大. 例:平常我们把数据写到数据库需要写: insert int Student (name, age) values (xxxx, 12); 如果全使用CoreData的话则不…
在实际开发中,往往需要每个模块使用不同数据库,而CoreData也具备这样的功能,使用起来也很方便: 首先我们创建2个模型文件(School和Educationist) // 1.创建模型文件 (相当于一个数据库里的表) // New File ———— CoreData ———— Data Model ———— Next // 2.添加实体 (相当于一张表) // 找到我们创建的模型文件(xxx.xcdatamodeld,我创建的叫School.xcdatamodeld)————Add Ent…
在CoreData实际使用中,分页查询和模糊查询是必不可少的,接下来演示一下: 首先 // 1.创建模型文件 (相当于一个数据库里的表) // New File ———— CoreData ———— Data Model ———— Next // 2.添加实体 (相当于一张表) // 找到我们创建的模型文件(xxx.xcdatamodeld,我创建的叫School.xcdatamodeld)————Add Entity ———— 添加表内属性(这边我添加2个属性(name,age)) // 3.…
这次是表之间怎么进行关联,要求如下: // 建立学生与班级表之间的联系 既然是表与表之间的关联,那肯定是要先创建表: // 1.创建模型文件 (相当于一个数据库里的表) // New File ———— CoreData ———— Data Model ———— Next // 2.添加实体 (相当于一张表) // 找到我们创建的模型文件(xxx.xcdatamodeld,我创建的叫School.xcdatamodeld)————Add Entity ———— 添加表内属性(这边我添加2个属性(…