如何使用 UserDefaults 儲存和讀取自定義的物件
2 min readOct 12, 2020
在實務上很常遇到一個狀況,當維護它人專案時,需要 永久儲存自定義的物件
,但是該專案確沒有任何一個可使用的工具,例如:SQLite 或 Core Data 等等,此時,有沒有替代的方案可選呢?答案是有的。可使用 UserDefaults 搭配 Codable protocol
將自定義的物件轉成 Data 存入,取出時再將 Data 轉成自義的型別即可。
宣告一自定義的物件
撰寫存入、取出 UserDefaults 的 func
透過 encode(_:)
和 decode(_:from:)
的方法將自定義物件編碼和解碼來存入和取出。
生成自定義物件並測試將其存入 UserDefaluts 後再取出
升級存入和取出 UserDefaults 的 func
利用 Generic function 將 saveDataInUserDefaults(:) 和 loadDataFromUserDefaults() 來升級成一個功能相同,但型別不同的 func,可讓所有的自定義物件都可透過它們來達成存入和取出 UserDefaults 的動作。
首先宣告 enum SavedKeyInUserDefaults 用來識別 UserDefaults 的 key,再將 saveDataInUserDefaults(:) 和 loadDataFromUserDefaults() 的型別參數宣告成泛型,並限制其必須遵從 Codable protocol
。
如果您喜歡我的文章,請多按幾下「拍手」給我鼓勵,或是按「follow」讓我持續提供好文章給您。