2018 WWDC CoreData 最佳实践总结

Core Data Best Practice

基础知识

1、What is Core Data?

       Core Data 其实并不是一个传统意义上的数据库,而是一套数据对象管理系统。这套系统默认使用 SQLite 作为底层存储,由低向高构建一套管理组件栈,并提供缓存和对象管理机制

 

2、基本概念

  • NSManagedObject 托管对象

       Managed Objec数据对象,与上下文Managed Object Context相关联。

  • NSManagedObjectModel 数据模型描述集合

       Managed Object Model 是描述应用程序的数据模型,这个模型包含实体(Entity),特性(Property),读取请求(Fetch Request)等。

  • NSManagedObjectContext 托管上下文

       Managed Object Context 参与对数据对象进行各种操作的全过程(CRUD),并监测数据对象的变化,以提供对 undo/redo 的支持及更新绑定到数据的 UI

  • NSPersistentStoreCoordinator 持久化存储协调器

       Persistent Store Coordinator 相当于数据文件管理器,处理底层的对数据文件的读取与写入。

  • NSPersistentStore 持久化存储

      持久存储抽象层,将Requset转化为具体的SQL语句操作数据库

  • SQLite 数据库

 

3、Core Data 栈

一个基本的 Core Data 栈由四个主要部分组成:托管对象,托管对象上下文,持久化存储协调器,以及持久化存储。

 

Best Practice

  • Modernizing Core Data
  • Evolving containers
  • Matching models with views
  • Managing growth
  • Potpourri

Core Data现代化 (Modernizing Core Data)

  1. 旧有的构建Core Data方式

 

  • 创建Managed Object Model
  • 创建Persistent Store Coordinator
  • 创建Managed Object Context 并关联到 Persistent Store Coordinator
  • 创建 Persistent Store 并添加到 Persistent Store Coordinator

  1. 使用NSPersistentContainer

 

苹果方面建议是在AppDelegate里面以懒加载的方式引入NSPersistentContainer。初始化一个新项目,勾选默认使用Core Data,Xcode会自动生成相应代码

 

扩展NSPersistentContainer(Evolving Containers)

  1. 指定Managed Object Model

存在多个xcdatamodeld文件,或者framework中的bundle中有xcdatamodeld文件,可用指定Managed Object Model的方式加载

  1. 小技巧:继承NSPersistentContainer 重载指定路径

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值