Day28 Data Storage in iOS 04 - Core Data 简介

Core Data

官方文件

Core Data 是 iOS 的资料库,可让使用者在本地端储存资料

可以在一开始建立专案时就把Core Data 添加至专案中,也可以在已存在的专案中新增Core Data

建立Core Data 需要设置管理和持久化物件的类别,这些类别统称为核心数据堆栈/堆叠 Core Data Stack

Diagram showing that a persistent container instance contains references to a a managed object model, a managed object context, and a persistent store coordinator that connects to your app's stores.

Core Data 提供了以下类别来帮忙 Support 储存Model 层的资料类别:

  • NSManagedObjectModel 的实例代表你的应用程序的模型文件,描述你的应用程序的类型、属性和关系,用来读取与呈现Core Data Model 内的物件结构,为建立CoreData 後出现的xcdatamodeld档案,需在Core Data Model 内建立实体(Entity)、属性(Attributes)与资料关联性(Relationship)等设定

  • NSManagedObjectContext 的实例用来跟踪对应用程序类型实例的更改,对Model(资料)做新增、删除、修改、读取等动作,就像一个暂存记忆体存取着Model 资料,当接收到动作指令後才会将资料交付至Coordinator 来存取至Persistent Store 永久性资料库

  • NSPersistentStoreCoordinator 的实例用来保存并从资料库中获取应用程序存数据的实例,是一个中介的角色,处於Model(资料)与Persistent Store(资料库)之间,负责处理资料的读取与写入。Persistent Store 是实际将资料储存的地方,是iOS 内建的SQLite 资料库

NSPersistentContainer 会用来简化NSManagedObjectModelNSPersistentStoreCoordinatorNSManagedObjectContext的创建与管理

概述:

在创建Core Data Stack 时,我们需要一个ManagedObjectModel来实例化PersistentStoreCoordinator,来让PersistentStoreCoordinator知道应用程序的类型、属性和关系

设置了Coordinator 和Model 之後,Core Data Stack 的主要工作就是NSManagedObjectContext,其中 Context 保留了对Coordinator 的引用

设置完Core Data Stack 後,我们就可以使用我们的Core Data 来储存我们的资料,主要通过Context 与Coordinator 进行交互,其中Context 是我们最常使用的类别,用於创建,读取,更新和删除记录,在Context 中做了这些动作後,Context 会将它们推送到Coordinator,Coordinator 将更改发送到相应的资料库


<<:  版本控制与结语-30天学会HTML+CSS,制作精美网站

>>:  Day30. 是结束,也能是开始 - Review

身为与会者,控场的重要性

会议中的每个人都是可以掌控会议的节奏,因为谁也不知道控场的人哪一天也自己不受控制。因应疫情,所以先从...

RISC-V: R-type 算术指令

终於进到 R-type 指令了! 指令实作已经有固定流程了,很单纯, 另外花了一点时间修改昨天的 E...

DAY 12 - 时钟怪 (1)

大家好~ 我是五岁 ( ̄▽ ̄)~* 今天来尝试画一个时钟怪吧~!!! 设定: 它是由一个传统闹钟变成...

[Day3] 使用ta-lib制作指标

延续前一天的程序码,在程序码後面加上以下三行程序码,他就会用前一天做出来的日收盘价计算出均线(预设算...

Gulp 直接将 watch, browserSync 加入任务函式中 DAY98

这里要来先补充一下 确认任务的流程(3种) 加入 return (上篇有提到过) gulp.task...