关于CoreData的理解和使用.】的更多相关文章

Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL.顺便吐一下槽,官方说法是使用Core Data能减少50%-70%的代码量,但相信用过的人应该都心里明白,Core Data使用起来还是比较麻烦的,这也是为什么有不少的第三方类库来代替/二次包装Core Data. 稍微复杂的应用就有可能出现同时处理多份数据的情况,这就需要用到多线程C…
CoreData是苹果官方推出的一种方便的面向对象的存储方式,相信大家都已经对其有所了解,但是对于CoreData的概念大家都存在部分的误区.给大家推荐个网址是苹果的官方文档的翻译版(http://objccn.io/issue-4-1/)这里详细的解释了CoreData存在以及出现的意义.下面我就带大家来学习下如何使用CoreData. 今天我们先学习最基础的CoreData的操作(单表操作) 第一步 创建一个带有CoreData的工程. 创建完成带有CoreData的工程后我们可以看到我们工…
前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎么会使用到这些方式,都会以本人实际开发的场景为例,大约需要花10-15分钟,欢迎大家指正. 一.前言 和大家说一个真实故事,前年我去美图面试(当时的技术仅仅是UI和接口的实现,并不注重很多底层实现和很多概念的原理,换句话说,就是真正的码农),过了技术第一轮和第二轮(前两年的也就是问问技术点的实现),…
Core Data数据持久化是对SQLite的一个升级,它是iOS集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类. (1)NSManagedObjectModel(被管理的对象模型) 相当于实体,不过它包含 了实体间的关系 (2)NSManagedObjectContext(被管理的对象上下文) 操作实际内容 作用:插入数据  查询  更新  删除 (3)NSPersistentStoreCoordinator(持久化存储助理) 相当于数据库的连接器 (4)NSF…
网上关于CoreData的教程能搜到不少,但很多都是点到即止,真正实用的部分都没有讲到,而基本不需要的地方又讲了太多,所以我打算根据我的使用情况写这么一篇实用教程.内容将包括:创建entity.创建relation.插入.更新.删除.查询.条件查询.排序.分组等操作,并分享本人对CoreData的一些独立见解.当然,一个完整的代码也是必须有的. 声明:本文演示数据中所涉及到的人名皆是本文作者虚构,如有雷同,纯属巧合. 目录 CoreData是不是ORM? 别的教程却讲了一大堆的东西 创建工程 逻…
在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作.CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的comm…
1.CoreData 数据库 CoreData 是 iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据.使用 CoreData 框架,程序员可以很轻松有效地通过面向对象的接口管理数据.CoreData 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的数据还原成 OC 对象,在数据操作过程中,无需编写任何 SQL 语句. 模型文件及实体(Entity).要使用 CodeDa…
CoreData简介: 什么是CoreData? Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象.在此数据操作期间,我们不需要编写任何SQL语句 CoreData 不能执行SQL语句 取而代之,操作的是对象.而常用的三方库 FMDB SQLite 可以直接SQL语句 CoreData和数据库有什么区别? CoreData是一个苹果原生的框架,它拥有像数…
CoreData详解 介绍: 在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作.当然你也可以通过别人封装之后的一些简单框架,使得你的操作更加简单(如FMDB BNRPersistence). Cocoa框架本身提供了CoreData这个API可方便的让开发者通过操作对象的方式在操作数据库.CoreData是一个对象图(object graph)以及持久化的管理框架.我们可以通过CoreData创对象,设置好象之间的关系,然后…
#import "ViewController.h" #import "Person.h" @interface ViewController () <UITableViewDelegate,UITableViewDataSource> { UITableView *_tableView; NSMutableArray *_dataArray; UITextField *_nameTextField; UITextField *_ageTextField…
首先说明 ios 中 NSManagedObjectContext 默认的 undoManager是nil的,就是说 undo 和 redo 都是没用的. 但是 rollback函数和reset函数是不设置undoManager对象也能使用的! 看下rollback的说明 Removes everything from the undo stack, discards all insertions and deletions, and restores updated objects to th…
1. SQLite数据库 sqlite数据库操作的基本流程是, 创建数据库, 再通过定义一些字段来定义表格结构, 可以利用sql语句向表格中插入记录, 删除记录, 修改记录, 表格之间也可以建立联系. 这些操作都需要使用SQL语句去实现,感觉操作很直接.如果先前有一点数据库和SQL基础的话,写起来会感觉很亲切,都是一些数据库操作的语句.但是当操作变多之后,语句越来越多,就很烦,代码比较多,看起来也会混乱一些. 如果想要详细了解,可以看iOS学习36数据处理之SQLite数据库 2. CoreDa…
一.CoreData学习指引 1. 苹果官方:Core Data Programming Guide 什么是CoreData? 创建托管对象模型 初始化Core Data堆栈 提取对象 创建和修改自定义托管对象 2.Core Data在 macOS 10.12 , iOS 10.0, tvOS 10.0和watchOS 3.0中的新特性 国内比较好的CoreData学习资源: 以下资源来自:blog.csdn.net/hello_hwc 汇总目录: http://blog.csdn.net/co…
引言: Core Data 是 iOS 3.0 以后引入的数据持久化解决方案,其原理是对SQLite的封装,是开发者不需要接触SQL语句,就可以对数据库进行的操作. 其编码方式和原理结构方面较为特殊,本博文主要介绍在使用Core Data时遇到的各种问题以及对其核心原理进行解释. 参考资料:  1: iOS教程:Core Data数据持久性存储基础教程 http://www.dasheyin.com/ios_jiao_cheng_core_data_shu_ju_chi_jiu_xing_cun…
关于CoreData的介绍太多,网上一搜大把全是,这里不介绍CoreData,直接上代码,注释写的很详细,应该很容易理解,暂时现做简单的增删该查,后面有时间再做修改完善. CoreDataManager.h // // CoreDataManager.h // UCaiYuan // // Created by wanyakun on 16/1/6. // Copyright © 2016年 com.ucaiyuan. All rights reserved. // #import <Found…
iOS有多种数据持久化得方式 plist文件(属性列表) preference(偏好设置,NSUserDefaults) NSKeyedArchiver(归档,用的不多) SQLite 3 (需要导入库libsqlite3.0.tbd,并且在使用时要包含<sqlite3.h>头文件) CoreData (IOS5后出的框架,能帮助我们不写SQL语句将数据保存在SQLite数据库文件中,并对数据进行管理) 1.新建一个工程 (1)先不勾选Xcode为我们提供的Use Core Data,自己通过…
@简单的说,Core Data就是能够存储到磁盘的对象图,[...]Core Data能够帮我们做非常多任务作.它能够作为软件的整个模型层. 它不只在磁盘上存储数据.也把我们须要的数据对象读取到内存中. --Marcus Zarra, Core Data @Core Data是Mac OS X中Cocoa API的一部分,首次在Mac OS X 10.4 Tiger与iOS 3.0系统中出现[2].它同意依照实体-属性-值模型组织数据.并以XML,二进制文件或SQLite数据文件的格式将其串行化…
上面一篇文章介绍了coredata的有关基本概念,由于大部分是参考别人文章中的内容,所以感觉有点虚,而且估计也是比较难以理解,下面这篇文章通俗一点说说学习coredata后的一些理解,然后给出一个简单的demo,有错漏的地方,欢迎读者指正. 其实与coredata有关的有几个概念: 数据表 --–> Entity  (You usually define entities in a managed object model usingthe data modeling tool in Xcode…
IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSXMLJSONSQLiteCoreData 一.文件操作      1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:           * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录           *…
先粗略的了解下CoreData中的一些核心概念 1. CoreData 的核心概念 先上两幅关键的概念图 (1)NSManagedObjectModel 托管对象模型(MOM)是描述应用程序的数据模型,这个模型包含实体(Entity),特性(Property),读取请求(FetchRequest)等. 这个MOM由实体描述对象,即NSEntityDescription实例的集合组成,实体描述对象介绍见下面第7条. 作用:添加实体的属性,建立属性之间的关系 (2)NSManagedObjectCo…
一. KVC 1. KVC 使用前:黯淡无光 if ([keyPath isEqualToString:@"name"]) { self.labelName.text = self.person.name; }elseif ([keyPath isEqualToString:@"level"]){ self.labelLevel.text = self.person.level; self.progressViewLabel.progress = [self.per…
在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量 反正读第一遍的时候我是有点晕的,可以添加“属性”,然后又说“添加实例变量”,第一感觉就好像 有点自相矛盾了.那么我们谈谈: 什么是实例变量? 实例变量就是一种变量,可以存放数据的.在oc上,形式就如: @interface MyViewController :UIViewController { UIButton *myButton; } @end 什么是属性? 属性是oc的一个新的机制,并…
CoreData是iOS5后,苹果提供的原生的用于对象化管理数据并且持久化的框架.CoreData本质上是将底层数据库封装成对象进行管理.但数据库实际上只是CoreData的一个功能,并不是全部功能.在iOS开发中,除了可以使用CoreData进行数据管理,还可以使用SQLite进行内存管理.并且有封装好SQLite代码的OC框架FMDB给我们使用.具体看我上篇文章.SQLite重要框架FMDB的使用.但对比SQLite,CoreData有下面几个优势.第一是CoreData作为苹果提供的原生框…
以前使用过OC版本的CoreData应该很好理解Swift方式,所以这里简单的展示一下,增删改查的方法使用,同时给大家说一下创建步骤,方便大家的使用,转载请注明出处,谢谢~ 步骤一:创建一个Swift的新项目,记得勾选对应的配置项,如图: 步骤二:打开****.xcdatamodeld文件,点击Add Entity,添加一个实体类,可以自己重定义类名,然后在类中添加属性,如图: 步骤三:打开AppDelegate文件,添加相关代码,注意红色的地方要改成自己项目中对应的名称 //MARK:----…
有些同事觉得CoreData是一个看不懂,理解不清的神秘东东,其实ios的本地数据储存是一个sqlite数据库,一个简易的数据库,而这个CoreData是否支持所有储存的数据呢,显然不是的,站在我的角度,我是不支持把一些图片数据保存的CoreData里面,其一,如果保存图片需要把图片转化为Data类型,    UIImage * image = info[UIImagePickerControllerEditedImage];    //把Image转化成Data    self.imageDa…
CHENYILONG Blog iOS数据库操作之coredata详细操作步骤 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong     iOS应用数据存取的常用方式 • XML属性列表 -- PList• NSKeyedArchiver 归档 •Preference(偏好设置) • SQLite3• Core DataCore Data简介 • Core Data 是iOS SDK 里的一个…
1.初识CoreData CoreData的结构构成: NSManagedObjectModel的构成: 可以通过Entity创建继承自NSManagedObject类的文件,这个文件就是开发中使用的托管对象,具备模型对象的表示功能,CoreData的本地持久化都是通过这个类及其子类完成的. 在CoreData的整体结构中,主要分为两部分.一个是NSManagedObjectContext管理的模型部分,管理着所有CoreData的托管对象.一个是SQLite实现的本地持久化部分,负责和SQL数…
我目前的理解,CoreData相当于一个综合的数据库管理库,它支持sqlite,二进制存储文件两种形式的数据存储.而CoreData提供了存储管理,包括查询.插入. 删除.更新.回滚.会话管理.锁管理等一系列数据库操作.另外,开发者还可以在xcode中使用 .xcdatamodel 扩展名的文件,以图形化的形式编辑数据模型,这里包括了 Entities.Properties.Attributes.Relationships四个概念,这里跟关系型数据库有很大的相似点. 下面来看一下CoreData…
在真实开发中,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模的重构:所以数据的迁移就显得尤为重要了. CoreData 中,数据迁移本质就是把旧的 SQLite 数据库里的内容,复制到新的 SQLite 数据库里去,让新的数据库作为默认的数据存储.伴随着模型版本的变化,新旧两个数据库的实体结构当然也是不同的.这就是说在迁移过程中必须知道新旧两个数据库的模型对应关系,旧数据库里的数据该怎么复制到新的数据库中.这在 CoreData 中是由 Mapping…
1. 导入库文件CoreData.framework2. 在iOS的Core Data 中建Data Model文件 此时有三种选择 2.1. 选Data Model(如默认名Model.xcdatamodeld) 2.11 再点击下边的Add Entity按钮(修改名为Person) 2.12 再在Attributes中添加(成员变量)保存变量信息 2.13 再创建继承自NSManagedObject的模型Person 2.14 再在模型.h文件中创建Attributes中添加的成员变量 2.…