第 52 章
使用 SwiftData 管理資料庫

SwiftUI 應用程式開發的常見問題是如何使用 Core Data 將資料永久保存在內建資料庫中。 儘管 Apple 不斷努力簡化 Core Data 的 API,但新來者常常發現框架使用起來很困難。 然而,好消息是蘋果自 iOS 17 開始加入名為 SwiftData 的新框架來取代 Core Data。 SwiftData 旨在更易於用於資料建模和管理,提供更使用者友善的方法。

SwiftData 基礎介紹

首先,需要注意的是,SwiftData 框架不應與資料庫混淆。 SwiftData 建構在 Core Data 之上,實際上是一個框架,旨在幫助開發人員管理持久性儲存上的資料並與之互動。 雖然 iOS 的預設持久性儲存通常是 SQLite 資料庫,但值得注意的是,持久性儲存也可以採用其他形式。 例如,Core Data 也可以用於管理本機檔案中的數據,例如 XML 檔案。

無論你使用的是 Core Data 還是 SwiftData 框架,這兩種工具都可以幫助開發人員免受底層持久儲存的複雜性的影響。 以 SQLite 資料庫為例。 使用 SwiftData,無需擔心連接資料庫或理解 SQL 來檢索資料記錄。 相反,開發人員可以專注於使用 API 和 Swift 巨集(例如 @Query@Model)來有效管理應用程式中的資料。

iOS 17 中新引入了 SwiftData 框架,以取代先前稱為 Core Data 的框架。 自 Objective-C 時代以來,Core Data 一直是 iOS 開發的資料管理 API。 儘管開發人員可以將該框架整合到 Swift 專案中,但 Core Data 並不是 Swift 和 SwiftUI 的本機解決方案。

在最新版的 iOS 中,Apple 終於為 Swift 引入了一個名為 SwiftData 的原生框架,用於持久資料管理和資料建模。 它建立在 Core Data 之上,但 API 完全重新設計以充分利用 Swift。

使用程式碼建立資料模型

圖 52.1. 資料模型編輯器
圖 52.1. 資料模型編輯器

如果你曾使用過 Core Data,可能會記得必須使用資料模型編輯器建立資料模型(檔案副檔名為 .xcdatamodeld)以實現資料持久性。 隨著 SwiftData 的發布,你不再需要這樣做。 SwiftData 使用巨集簡化了整個過程。例如,你已經為 Song 定義了一個模型類,如下所示:

想更深入學習SwiftUI和下載完整程式碼?你可以從 AppCoda網站購買《精通 SwiftUI》完整電子版。

results matching ""

    No results matching ""