iOS CoreData

Posted 1018475062

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS CoreData相关的知识,希望对你有一定的参考价值。

CoreData是ios5后,苹果提供的原生的用于对象化管理数据并且持久化的框架(ORM)

CoreData本质上是将底层数据库封装成对象进行管理。但数据库实际上只是CoreData的一个功能,并不是全部功能。

在iOS开发中,除了可以使用CoreData进行数据管理,还可以使用SQLite进行内存管理

并且有封装好SQLite代码的OC框架FMDB给我们使用。具体看我上篇文章。SQLite重要框架FMDB的使用.但对比SQLite,CoreData有下面几个优势

第一是CoreData作为苹果提供的原生框架,在内存方法比SQLite有性能上的优势

第二是CoreData操作数据不需要使用SQLite代码,使用方便

第三是CoreData把数据用面向对象方式进行管理,操作数据库更方便。
CoreData的核心是Core Data stack(技术栈堆)。CoreData就是依靠Core Data stack中的几个对象进行数据操作的

这几对象是:
NSManagedObjectContext ,管理对象的上下文: 负责管理模型对象的一个集合,
NSManagedObjectModel 被管理的对象模型
NSPersistentStoreCoordinator 存储调度器: 负责将数据保存到磁盘
NSPersistentStore用于保存模型数据,受NSPersistentStoreCoordinator 存储调度器的操控
这三个对象的关系如下面图片所示,苹果官方给出了这几个对向关系的图解。简单理解起来就是最上面的NSManagedObjectContext负责管理对象模型。然后将管理的对象模型发送给NSPersistentStoreCoordinator 存储调度器,存储调度器通过NSPersistentStore操作SQLite语句,将数据持久化到本地,保存到StoryFile中。

以上是关于iOS CoreData的主要内容,如果未能解决你的问题,请参考以下文章

IO复用阻塞IO非阻塞IO同步IO异步IO

四种IO模型‘阻塞IO/非阻塞IO/信号驱动IO/异步IO‘

5种IO模型阻塞IO和非阻塞IO同步IO和异步IO

网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

同步IO异步IO阻塞IO非阻塞IO之间的联系与区别

同步IO异步IO阻塞IO非阻塞IO之间的联系与区别