CoreDate和DataBase

(以下都是个人简单的理解,不一定十分精确,随着版本的变化,可能有较大的改动。CoreData是个麻烦但好用的东西,如果有兴趣,可以研究一下,对于普通应用来说,一般了解就足够了)

  CoreData和Database都提供了持久化数据的功能,并且CoreData通常被认为是对SQLite的封装,但是,CoreData和Database还是有很大程度的不同,两者都拥有对方不能提供的功能,而且性能也有很大差别。

   DataBase的主要功能就是持久化数据。但是关系型数据库(基于row的表格)实际上不能保存类和类之间的关系,对于每一个row来说,也只有读和写着2个操作,用户也没有办法自定义操作或者,扩展数据库。

  而CoreData相比DataBase,它提供了一个生命周期管理,关系查找的管理工具。这个工具包含以下功能:

   1 可以将类A和类B进行关联, 关联之后,他们会永久同步。

   2 如果修改了类A,B类将自动更新,并触发notification

   3 删除一端的类会引起联级删除或者无效响应

   4 慢装载。不是所有的关联都要一次性完全载入内存。

  DataBase不同的是,CoreData是可以完全存在与内存中的,虽然它常被称持久化”框架,但是CoreData不一定要使用它的持久化框架,所以, 持久化只是Coredata的主要功能,而不是必功能。

  CoreData可以不需要任何搜索,如果你正确的生成并且连接了所有的类,只需要持有其中的一个类,你就可以获得所有的类而不需要使用fetch request,但是缺少搜索的功能并不能说明CoreData就是完全不提供搜索的,只是一旦数据被装载到了内存中,就不太需要传统数据库的搜索功能了。

  所有的CoreData都是使用Objc的类来完成的,Objc掌管其所有的属性,关系和生命周期。但是CoreData不能在没有把数据装载入内存的情况下进行任何操作


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值