有什么方法可以为 NSUserDefaults
中的同一个键保存多个值吗?我似乎只保存了最后一个值,即使我有多个“日”键值。
日
:
for days in results! {
let nD = DayClass()
nD.dayOfTheWeek = days[“D”] as! String
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(nD.dayOfTheWeek, forKey: “Day”)
}
我已经尝试创建一个数组作为一种可能的解决方案,但是当我将它登录到我的控制台时,我仍然只得到最后一个值:
var emptyArray = [String]()
emptyArray.append(dayOfTheWeek)
print("Array: \(emptyArray)")
print("ArrayCount: \(emptyArray.count)")
最佳答案
你可以做到这一点。首先检查prefs中是否已经有Day数组。如果是这样,则将新的 dayOfTheWeek 添加到该数组并存储它。否则创建一个新的并存储它。
for days in results! {
let dayOfTheWeek = days["D"] as! String
//check if there is already an existing Day array in prefs
if var existingArr = NSUserDefaults.standardUserDefaults().arrayForKey("Day") as? [String] {
//if so append the new value to that array and store it
if existingArr.contains(dayOfTheWeek) == false {
existingArr.append(dayOfTheWeek)
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(existingArr, forKey: "Day")
defaults.synchronize()
}
} else {
//create a new array and store it
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject([dayOfTheWeek], forKey: "Day")
defaults.synchronize()
}
}
关于ios - 在 NSUserDefaults 键中保存多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35972461/