如何在Swift應用中儲存本地資料?


在Swift中,有多種方法可以儲存應用程式中的本地資料,具體取決於要儲存的資料型別和大小。可以使用UserDefaults、屬性列表序列化、Core Data等。本文將介紹UserDefaults並提供一些示例。

UserDefaults

在iOS、macOS和watchOS中,一個稱為UserDefaults的基本儲存機制允許應用程式儲存相對少量的資料,包括使用者偏好設定或設定。它使用鍵值對系統,將值賦給特定的鍵,然後使用該鍵來檢索值。

UserDefaults通常儲存簡單的資料型別,例如文字、布林值、整數和日期。它易於使用,不需要其他框架或庫。

以下是UserDefaults的一些主要特性:

  • 資料永續性 − 即使應用程式關閉或裝置重啟,UserDefaults資料仍然可用。

  • 簡單的API − 透過鍵輕鬆設定和獲取值,易於使用。

  • 快速 − UserDefaults專為快速讀取和寫入而設計,對於少量資料來說是一個不錯的選擇。

  • 安全 − UserDefaults資料安全地儲存在應用程式的沙盒中,這意味著只有建立它的應用程式才能訪問它。

以下是一些在Swift中使用UserDefaults的更多示例:

示例1:儲存和檢索布林值

import Foundation
// Set a boolean value for the key "isDarkModeEnabled"
let defaults = UserDefaults.standard
defaults.set(true, forKey: "isDarkModeEnabled")

// Retrieve the boolean value for the key "isDarkModeEnabled"
let isDarkModeEnabled = defaults.bool(forKey: "isDarkModeEnabled")
print(isDarkModeEnabled)

輸出

true

此示例演示如何使用set方法和鍵“isDarkModeEnabled”將布林值儲存到UserDefaults。然後,它使用bool方法和相同的鍵檢索布林值。最後,它打印出檢索到的布林值。

示例2:儲存和檢索字串陣列

import Foundation
// Set an array of strings for the key "myArray"
let defaults = UserDefaults.standard
defaults.set(["Apple", "Banana", "Orange"], forKey: "myArray")

// Retrieve the array of strings for the key "myArray"
let myArray = defaults.array(forKey: "myArray") as? [String] ?? []
print(myArray)

輸出

["Apple", "Banana", "Orange"]

此示例演示如何使用set方法和鍵“myArray”將字串陣列儲存到UserDefaults。然後,它使用array方法和相同的鍵檢索陣列,並將其轉換為字串陣列。如果由於某種原因轉換失敗,它將預設為空陣列。最後,它打印出檢索到的陣列。

示例3:儲存和檢索整數

import Foundation
// Set an integer value for the key "myInt"
let defaults = UserDefaults.standard
defaults.set(42, forKey: "myInt")

// Retrieve the integer value for the key "myInt"
let myInt = defaults.integer(forKey: "myInt")
print(myInt)

輸出

42

此示例演示如何使用set方法和鍵“myInt”將整數值儲存到UserDefaults。然後,它使用integer方法和相同的鍵檢索整數值。最後,它打印出檢索到的整數值。

示例4:儲存和檢索字典

import Foundation
// Set a dictionary for the key "myDictionary"
let defaults = UserDefaults.standard
defaults.set(["name": "John", "age": 30], forKey: "myDictionary")

// Retrieve the dictionary for the key "myDictionary"
let myDictionary = defaults.dictionary(forKey: "myDictionary") as? [String: Any] ?? [:]
print(myDictionary)

輸出

["name": John, "age": 30]

此示例演示如何使用set方法和鍵“myDictionary”將字典儲存到UserDefaults。然後,它使用dictionary方法和相同的鍵檢索字典,並將其轉換為鍵為String,值為Any的字典。如果由於某種原因轉換失敗,它將預設為空字典。最後,它打印出檢索到的字典。

結論

總而言之,UserDefaults是iOS、macOS和watchOS中的基本儲存機制。它允許應用程式儲存少量資訊,例如使用者偏好設定或設定。它使用鍵值對系統,將值賦給特定的鍵,然後使用該鍵來檢索值。

UserDefaults非常適合儲存基本資料型別,因為它易於使用,不需要其他庫或框架。但是,它並非旨在處理大型資料集或更復雜的資料型別,因此在某些情況下,您可能需要使用Core Data、SQLite資料庫或屬性列表作為替代儲存方法。

更新於:2023年5月4日

3K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.