[APP開發-使用Swift] 19. Core Data

我們已經利用「我的餐廳」App介紹完大多數的基本功能,接下來我們要讓餐廳的資料放到資料庫中,以便資料可以永久保存。

讓我們先從Core Data Stack 開始:

Core Data Stack
  1. Persistent Container

自iOS 10以後,新增加了NSPersistentContainer封裝了Core Data Stack,讓我們使用Core Data的方式可以大量簡化。看一下Apple的解釋:

NSPersistentContainer simplifies the creation and management of the Core Data stack by handling the creation of the NSManagedObjectModel, NSPersistentStoreCoordinator, and the NSManagedObjectContext. ~Apple Documentation

上圖的黑色虛線框就是Apple所稱的包涵了Managed Object Model、Persistent Store Coordinator、Managed Object Context。

2. Managed Object Model:即我們新增的.xcdatamodleId檔,包含資料庫需定義的Entity、Attribute、Relationship,在Xcode中用圖形化的方式呈現,方便理解。

3. Managed Object Context:這可以說是整個Core Data的核心所在,幾乎我們需要用到針對資料庫存取動作的方法,都與Managed Object Context有關,再進而針對某一個Managed Object操作。

以下是我們接下來將要建立的FoodPin Core Data Stack:

FoodPin Core Data Stack
  1. 在AppDelegate.swift中先建立一個Persistent Container物件名稱為persistentContainer,利用以下程式碼即可取用

let appDelegate = UIApplication.shared.delegate as? AppDelegate

appDelegate.persistentContainer

2. 建立Data Model:FoodPin.xcdatamodelId

3. 建立Managed Object Context

let context = appDelegate.persistentContainer.viewContext

依照以上步驟,我們即可成功將「我的餐廳」專案轉換為Core Data架構。接下來就讓我們開始吧!

>>>19–1. 修改為Core Data 架構