我想创建一个Ints数组,我可以将其附加到 UserDefaults
,以便下次用户打开应用程序时,数组将被保存。所以,我知道如何创建 UserDefaults
数组......
var intArray = UserDefaults.standard.array(forKey:“ intArray“)as! [Int]



 我知道如何将数组设置为现有数组:

&# xA; var array = [2,6,34,4,9]
 UserDefaults.standard.set(array,forKey:“intsArray”)



 但是,我需要数组为空,然后用户将Ints添加到数组中。谢谢你的帮助!

答案 0 :(得分:1)
不确定你需要什么。
但是,这是向UserDefaults添加空数组的方法
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:title="@string/activity_title"
...
/>
这就是你的方式
。
UserDefaults.standard.set([Int](), forKey: "nums")
答案 1 :(得分:1)
我建议你为此目的创建一个计算属性:
var intArray: [Int] {
get {
return UserDefaults.standard.array(forKey: "intArray") as? [Int] ?? []
}
set {
UserDefaults.standard.set(newValue, forKey: "intArray")
}
}
现在无论何时修改intArray,它都会在UserDefaults中更新它的值,每当你调用intArray时,它都会返回UserDefaults的值。
答案 2 :(得分:0)
而不是:
var intArray = UserDefaults.standard.array(forKey: "intArray") as! [Int]
这样做:
var intArray = UserDefaults.standard.array(forKey: "intArray") as? [Int] ?? []
如果数组在默认数据库中尚不存在,则会将数组初始化为空数组(或者如果它以某种方式损坏它而不能解析为数组{ {1}} S)。
无论如何,避免使用Int
这是一种很好的做法,因为否则如果您的默认设置损坏,您将在阅读时崩溃。