iOS数据存储--Core Data

了解SQLite的使用,我们知道SQLite是一个关系型数据库,需要使用SQL语言来进行操作,而SQLite需要通过C调用对应的API,并进行一些底层的封装操作,而且Model对象文件需要自己编写,代码量会非常多。

所以苹果在2005年第一次引入了Core Data框架,与SQLite相比,Core Data避免了SQL的复杂性,能让开发者更自然地与数据库进行交互。

Core Data简介

Core Data是伴随着iOS 5 出现的一个框架,它位于SQLite数据库之上,可以将模型对象保存到持久化存储中,并在需要的时候将他们取出。

由于Core Data位于MVC设计模式的Model层,他能将应用程序中的对象直接保存到数据库中,无需进行复杂查询,也无需确保对象的属性名和数据库字段名相对应,因此,与SQLite相比,使用Core Data为Model层编写的代码行数会减少为原来的50%至70%。

在Core Data框架中包含了几种类型的对象,这些对象的集合用术语叫做堆栈(Stock),下面是苹果官方描述Core Data框架堆栈的图片:

CoreData中的堆栈

由图中可以看出,Core Data框架中的堆栈包含4个模块,他们分别的作用如下:

  • Managed Object Model(托管对象模型):描述应用程序的数据模型,也就是数据库中数据表记录的对象表示,由Core Data管理的模型(Model)对象。
  • Managed Object Context(托管对象上下文):参与数据库进行各种操作的全过程,并监测数据对象的变化,在上下文中可以查找,删除和插入对象。
  • Persisent Store Coordinator(持久化存储协调器):相当于数据文件管理器,处理底层的对数据文件的读取和写入。通常情况下,它是数据库与对象之间的桥梁,专门用来添加持久化存储数据库(如SQLite数据库),一般开发者无需与它打交道。
  • Persistent Object Store(持久化对象存储库):用来存储对象模型。从概念上讲,一个持久化存储(Persistent Store)就像一个数据库,有数据表和数据记录。

Core Data提供了对象-关系映射(ORM)的功能,即能够将OC对象转为数据,保存在SQLite数据库文件中, 也能够将保存在数据库中的数据还原成OC对象,比如下图所示:

对象-关系映射图

由图中可以看出,关系模型(即数据库)中包含person表,person表中有id,name,age等3个字段,而且包含了两条记录;对象模型则包含的是2个OC对象,我们可以通过Core Data框架,轻松将数据库中的2条记录转换为2个OC对象,也可以轻松地将2个OC对象保存到数据库中,变成2条表记录。

需要注意的是,使用Core Data实现关系模型和对象模型的转换过程是不需要编写任何SQL语句的。

Core Data使用

没用过,书上看的,先记下来吧,感觉这东西挺烦的:

使用coreData的好处之一就是可以减少Model层代码的编写,但是要使用CoreData,首先需要学会创建模型实体,为了方便,我们可以在Xcode工具中创建模型实体:

在Xcode工具中创建模

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值