我正在从CloudKit中提取数据以放入数组。
我有3个可以拉的项目:Monday
,Tuesday
,Wednesday
我将它们放入existingArray
,但是当我运行该应用程序时,我得到:["Monday", "Tuesday"]
,然后在第二次运行时我得到了["Monday", "Wednesday"]
,我不知道为什么?
for days in results! {
let nD = DayClass()
nD.dayOfTheWeek = days[“D”] as! String
let defaults = NSUserDefaults.standardUserDefaults()
if var existingArr = defaults.arrayForKey("D") as? [String] {
if existingArr.contains(days["D"] as! String) == false {
existingArr.append(nd.dayOfTheWeek)
}
} else {
defaults.setObject([nD.dayOfTheWeek], forKey: "D")
}
}
编辑:如果我在添加后添加
defaults.setObject([nD.dayOfTheWeek], forKey: "D")
,则existingArray
变为["Monday", "Tuesday"]
,然后是["Tuesday", "Wednesday"]
。我无法将所有3个项目都保留在existingArray
中。 最佳答案
existingArr
之后,您需要将append
恢复为默认值。遵循以下原则:
for days in results! {
let nD = DayClass()
nD.dayOfTheWeek = days[“D”] as! String
let defaults = NSUserDefaults.standardUserDefaults()
if var existingArr = defaults.arrayForKey("D") as? [String] {
if existingArr.contains(days["D"] as! String) == false {
existingArr.append(nd.dayOfTheWeek)
defaults.setObject(existingArr, forKey: "D")
}
} else {
defaults.setObject([nD.dayOfTheWeek], forKey: "D")
}
}
关于ios - 第二个数组项被删除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36000373/