iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Software Development

iOS 學習筆記系列 第 28

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 將更改發送到相應的資料庫


上一篇
Day27 Data Storage in iOS 03 - File System & Sqlite
下一篇
Day29 Data Storage in iOS 05 - Core Data 實作專案範例
系列文
iOS 學習筆記30

尚未有邦友留言

立即登入留言