CoreData 简介

 CoreData 简介

一.初步介绍

在cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作。当然你也可以通过别人封装之后的一些简单框架,使得你的操作更加简单(如FMDB BNRPersistence)。

Cocoa框架本身提供了CoreData这个API可方便的让开发者通过操作对象的方式在操作数据库。也许很多初步了解CoreData的人会认为这不就是一个ORM框架嘛。但是实际上CoreData还是有别于传统的ORM框架的。

准确的说CoreData是一个对象图(object graph)以及持久化的管理框架。我们可以通过CoreData创对象,设置好象之间的关系,然后将其持久化(我们甚至可以使用内存数据库),或者从硬盘上将持久化后的数据加载到内存中。对象图,我们可以创建一个个的对象,并维持不同对象之间的关系,一对一,一对多等。至于持久化,我们可以设置持久化数据保存的类型,可以是XML,二进制的或者sqlite数据库,当然你可以自定义自己的存储类型。

CoreData有大量的特性,诸如支持Redo,Undo的功能,这些很多Document based的程序中显得非常的有用。提供数据model结构变化轻量级的迁移方案。

CoreData还通过Binding特性和控件的紧密结合,这样使得只需要少量的代码便可以完成强大的功能,下面是一个例子
http://www.timisted.net/blog/archive/multiple-windows-with-core-data/

二.重要组件

当我们新建一个支持CoreData特性的项目的时候,应用的delegate类中已经自动生成了一些CoreData需要用到的关键组建。

1
2
3
NSPersistentStoreCoordinator *persistentStoreCoordinator;
NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;

下图很好的阐述了这几个组件之间的关系,

  • managedObjectModel用来维护系统中的Model(也就是你通过Xcode工具建立的数据模型),将Model加载到内存,model主要描述数据实体对象有那些属性阿,以及model之间的关联关系阿,model和数据库中的表结构有一定的对应关系。
  • persistentStoreCoordinator,管理数据的存储位置,和存储的方式(sqlite,xml…)
  • managedObjectContext关联着一个persistentStoreCoordinator,managedObjectContext代表着ManagedObject的对象空间,我们可以把它看作managedObject的缓存区,在这个区域中,维护着大量的在内存中的managed object,我们可以对这些managed object进行修改,删除,或者增加新的managed object,并且可以将他们进行持久化操作。

所以我们在编码的时候接触得比较多的还是managedObjectContext和managedObject这两种对象。managedObject就相当于根据相应的Model模板生成的一个对象实体。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值