iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0
自我挑戰組

Swift!從新手到微上手系列 第 24

Swift-UserDefault

  • UserDefaults這個系統可以儲存Integers, Booleans, Strings, Arrays, Dictionaries, Date還有其他內容。但不適合保存太多數據,會導致降低應用程序的速度。

  • 它的結構跟字典很相似,可以使用key-value去儲存他的值

UserDefaults存值

let defaults = UserDefaults.standard
defaults.set(25, forKey: "Age")
defaults.set(true, forKey: "UserID")
defaults.set(3.14, forKey: "Pi")
defaults.set("Jack", forKey: "Name")
defaults.set(Date(), forKey: "LastRun")

這樣設置的時候,儲存資料將變成永久性的。在退出應用程式在重啟時,資料將仍然存在。UserDefaults也能儲存Arrays、Dictionaries,像下列程式碼

let array = ["Hello", "Swift"]
defaults.set(array, forKey: "SavedArray")

let dict = ["Name": "Jack", "Country": "Tw"]
defaults.set(dict, forKey: "SavedDict")

UserDefaults取值

在取回值時,有一個重要的條件。需要先知道UserDefaults的默認值是什麼,避免與設置的值混淆

  • integer(forKey:) returns an integer if the key existed, or 0 if not.

  • bool(forKey:) returns a boolean if the key existed, or false if not.

  • float(forKey:) returns a float if the key existed, or 0.0 if not.

  • double(forKey:) returns a double if the key existed, or 0.0 if not.

  • object(forKey:) returns AnyObject? so you need to conditionally typecast it to your data type.

可以用以下方式取回值

let age = defaults.integer(forKey: "Age")
print(age)
//25
let useID = defaults.bool(forKey: "UserID")
print(useID)
//true
let pi = defaults.double(forKey: "Pi")
print(pi)
//3.14

上一篇
Swift-ARC自動引數計數(Automatic Reference Counting) (3)
下一篇
Swift-Extensions
系列文
Swift!從新手到微上手30

尚未有邦友留言

立即登入留言