昨天介紹完一些 Property Wrapper,接下來介紹一個專門進行資料存儲的 Prpperty Wrapper,不過介紹之前要先來了解一些東西。
在介紹之前,先來介紹在 Swift 之中一些儲存資料的方式。在 Swift 中,資料儲存大致上有四種方式:UserDefault、FileManager、CoreData 以及 KeyChain。
這四種儲存方式會應用在不同的地方,例如:UserDefault 就是用來儲存一些經常使用且小型的資料,像是使用者設定之類的。
下面就分別列出四種儲存方式的特性:
UserDefault | FileManager | CoreData | KeyChain |
---|---|---|---|
小型且常用的資料 | 大量且少用的資料 | 大量且有關聯性的資料 | 密碼 |
使用者設定等 | 文件、檔案等 | 資料庫 | 帳號、密碼等需要加密的資料 |
速度較快 | 速度較慢 | 可以優化 | 不討論 |
在介紹 Property Wrapper 之前,要先來介紹一下 UserDefault 這個東西,具體原因之後會在說明。
首先需要知道的是,UserDefault 是一種 Key-Value 的資料儲存方式,換句話說就是,你要對某筆資料進行存取時是需要透過 Key 來進行的。
知道了 UserDefault 的存取方式之後,需要了解的就是他支援的存儲類型有以下幾種:Object、URL、Array、Dictionary、String、StringArray、Data、Bool、Int、Float、Double 這幾種。
那接下來來實際操作一次,首先先將一些東西設定好,包含 UserDefault 的啟動、會使用到的 Key 以及這個檔案的啟動。
下面的 enum 裡列出想要使用的 Key,這裡為了配合之後會提到的 @AppStorage,這裡就先用這幾個類型來操作。
要使用的 Key 已經設定好了,接下來要做的就是設定 Key 對應的 Value 了,具體設定的方式 UserDefault 都有針對不同的類型提供不同的函式,而這裡有些地方要注意的是,在設定 get 的時候,有些類型是需要設定它的預設值的,畢竟在 App 剛開始運行的時候,裡面不一定會有資料,這時候裡面的資料會是 nil 的狀態,這裡需要針對 nil 的時候去設定它應該要回傳的值。
那今天就介紹到這裡,明天來正式的介紹 @AppStorage 這個東西。