CoreData与SQL

CoreData简介


        Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句

CoreData和数据库有什么区别?

CoreData是一个苹果原生的框架,它拥有像数据库一样存储数据的功能,但本身并不是数据库

Core Data 是iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管 理数据。使用Core Data 框架,程序员可以很轻松有效地通过面向对象的接口管理数据

Core Data 不是一个数据库,不要用数据库的眼光去看待Core Data

CoreData 无需直接执行SQL语句 取而代之,操作的是对象。而常用的三方库 FMDB SQLite 可以直接SQL语句

Core Data 不是应用程序的数据库,也不是将数据持久化保存到数据库的API。Core Data 是一个 用于管理对象图的框架。Core Data 可以把对象图写入磁盘从而持久化保存


CoreData有什么特点?


    (1)CoreData提供了模型层的技术,可以直接对OC对象进行数据持久化,Core Data 是一个模型层的技术。帮助建立代表程序状态的模型层,Core Data 也是一种 持久化技术,能将模型对象的状态持久化到磁盘,但它最重要的特点是:Core Data 不仅是 一个加载、保存数据的框架,它还能和内存中的数据很好的共事

   (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 存储调度器: 负责将数据保存到磁盘的

你可能感兴趣的:(CoreData与SQL)