在我正在开发的应用程序中,我需要创建一个存储变量值的数组(money,这是一个double,当用户输入不同的值时会更改)。所以我的想法是从NSUSerDefaults键创建一个数组变量:
var moneyArray:Array = NSUserDefaults.standardUserDefaults().arrayForKey("MoneyArray")
然后我需要附加值:
moneyArray.append(money)
现在我再次保存数组:
NSUserDefaults.standardUserDefaults().setObject(moneyArray,forKey:"MoneyArray")
在中间,我正在打印数组以查看值。但我无法执行此代码。每当我运行应用程序时,都会发生这种情况:
而且我不知道我做错了什么,或者我应该在哪里寻找更多关于此的信息......
答案 0 :(得分:0)
我认为类型系统被arrayForKey搞糊涂了,因为它仍然会返回AnyObject!
我总是有一个包装属性:
var myArray : Array<Double>! {
get {
if let myArray: AnyObject! = NSUserDefaults.standardUserDefaults().objectForKey("myArray") {
println("\(myArray)")
return myArray as Array<Double>!
}
return nil
}
set {
println(myArray)
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "myArray")
NSUserDefaults.standardUserDefaults().synchronize()
}
}