第 19 章
使用 SwiftData 和資料庫處理
Learn not to add too many features right away, and get the core idea built and tested.
– Leah Culver
首先恭喜你的功力又更上一層了。你已經建立了一個簡單的 App,可以讓使用者列出他們最愛的餐廳名單。如果你有完成前面的練習,你應該對如何新增餐廳已經具有概念。我已儘量保持簡單,以將重點放在 UITableView 的基礎上。到這裡為止,所有的餐廳是先在程式碼中定義,並儲存在陣列中。當你要儲存餐廳,最簡單的方式就是新增一個餐廳到現行的 restaurants
陣列中。
不過這樣的方式並無法永久儲存新的餐廳名單。資料暫存在記憶體(如陣列),一旦你離開 App 後,所有的變更將會消失,因此我們需要找到一個可以永久儲存資料的方式。
想要永久儲存資料,我們需要將它們儲存在持久性儲存器( Persistent Storage )中,例如:檔案或資料庫。藉由資料庫做資料的儲存,即使 App 閃退或者離開 App 也不用擔心資料的遺失。檔案是另一種資料儲存的方式,但是它適合儲存小量且不需要經常性變動的資料。舉例而言,檔案通常是用來儲存應用程式的設定項目,如Info.plist 檔案。
而 FoodPin App 可能需要儲存數千筆餐廳資料,且使用者也許會經常增加或移除餐廳資料。在此範例中,資料庫是處理大量資料最佳的方式。本章將介紹 SwiftData 框架,並說明如何使用它來處理資料庫中的資料。這將對目前的 FoodPin 專案做許多的修改。而學習完本章之後,你的 App 將可讓使用者永久儲存他們最喜愛的餐廳資訊。
本文摘自《iOS 17 App程式設計實戰心法》(Swift+UIKit)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版。