附加到UserDefaults数组(Swift)
我想创建一个Ints数组,我可以将它添加到UserDefaults
,以便下次用户打开应用程序时,数组将被保存。所以,我知道如何创建一个UserDefaults
阵列...附加到UserDefaults数组(Swift)
var intArray = UserDefaults.standard.array(forKey: "intArray") as! [Int]
,我知道如何设置阵列到已经存在的数组:
var array = [2, 6, 34, 4, 9] UserDefaults.standard.set(array, forKey: "intsArray")
但是,我需要的数组是空的然后用户将Ints添加到数组中。谢谢你的帮助!
回答:
取而代之的是:
var intArray = UserDefaults.standard.array(forKey: "intArray") as! [Int]
做到这一点:
var intArray = UserDefaults.standard.array(forKey: "intArray") as? [Int] ?? []
这将初始化数组中,它并没有在缺省数据库中存在的情况下,空数组(或者,如果它以某种方式损坏,它不会解析为数组Int
s)。
无论如何,避免使用as!
这是非常好的做法,否则如果您的默认设置变坏,您将会在阅读时崩溃。
回答:
不确定你需要什么。
然而,这是你如何添加一个空数组UserDefaults
UserDefaults.standard.set([Int](), forKey: "nums")
而且你这是怎么
- 负荷UserDefaults阵列
- 再次增加值
- 将它保存到UserDefaults
。
var nums = UserDefaults.standard.array(forKey: "nums") as! [Int] nums.append(1)
UserDefaults.standard.set(nums, forKey: "nums")
回答:
我建议你为此创建一个计算的属性:只要您修改intArray将在UserDefaults更新它的值
var intArray: [Int] { get {
return UserDefaults.standard.array(forKey: "intArray") as? [Int] ?? []
}
set {
UserDefaults.standard.set(newValue, forKey: "intArray")
}
}
现在,每当你叫intArray它返回你的价值来自UserDefaults。
以上是 附加到UserDefaults数组(Swift) 的全部内容, 来源链接: utcz.com/qa/258471.html