标签:
CoreData简介:
什么是CoreData?
Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句
CoreData 不能执行SQL语句 取而代之,操作的是对象。而常用的三方库 FMDB SQLite 可以直接SQL语句
CoreData和数据库有什么区别?
CoreData是一个苹果原生的框架,它拥有像数据库一样存储数据的功能,但本身并不是数据库
Core Data 不是应用程序的数据库,也不是将数据持久化保存到数据库的API。Core Data 是一个 用于管理对象图的框架。Core Data 可以把对象图写入磁盘从而持久化保存
CoreData有什么特点?
(1)CoreData提供了模型层的技术,可以直接对OC对象进行数据持久化
(2)在数据的存储操作过程中,CoreData无需编写任何SQL语句
(3)Core Data 使用包括实体和实体间关系,以及查找符合某些条件实体的请求等内容
(4)开发者可以在纯对象层上查找与管理这些数据,而不必担心存储和查找的实现细节
(5)Core Data 框架最早出现在Mac OS X 10.4 Tiger 与iOS 3.0 系统,经过成千上万的应 用程序以及数以百万用户的反复的验证,Core Data 确实已经是一套非常成熟的框架
(6)CoreData 利用了Objective-C 语言和运行时,巧妙地集成了Core Foundation 框架。是 一个易于使用的框架,不仅可以优雅地管理对象图,而且在内存管理方面表现异常优异
CoreData原理:
第一眼看到Core Data 令人生畏的复杂架构关系,很多人都会有无从下手的感觉
可是,一旦理解了架构图中各个部件的组成及相互之间的关系,就能体会到Core Data API 的简 洁和直观了
Core Data stack(技术堆栈):如果能够理解Core Data stack 中的各个成员所扮演的角色,那么再 使用Core Data 就不会感觉到困难了
Core Data stack 是Core Data 的核心,由一组Core Data 核心对象组成
NSManagedObjectContext 对象管理上下文: 负责管理模型的对象的集合
NSManagedObjectModel 被管理的对象模型: 负责管理对象模型
NSPersistentStoreCoordinator 存储调度器: 负责将数据保存到磁盘的
组成可分为两部分
对象图管理:主要是指对象管理上下文(NSManagedObjectContext)通过对对象模型(NSManagedObjectModel)实施对象管理.
数据持久化:主要是指存储器(NSPersistentStore)来操作SQLite数据库,将数据存储在磁盘中(这部分是系统帮我们完成不需要我们管).
一个工程可以有多个管理模型的Context,一个存储调度器可以调度多个存储器,不过在一般的开发中,我们只需要一个Contect和一个存储器就足够了
标签:
原文地址:http://www.cnblogs.com/OTgiraffe/p/5929778.html