我目前正在尝试将数组保存为用户默认值。
这是我的代码:
//where things will be stored
let defaults = NSUserDefaults.standardUserDefaults()
var taskNames = [String]()
var taskPriorities = [Float]()
//this is the function that saves tasks
func saveTask() {
println(taskNames)
println(taskPriorities)
defaults.setObject(taskNames, forKey: "taskName")
defaults.setObject(taskPriorities, forKey: "taskPriorities")
defaults.synchronize()
}
//this is the function that loads tasks
func loadTasks() {
var taskNamesLoad = defaults.dataForKey("taskName")
println(defaults.dataForKey("taskName"))
println(taskNamesLoad)
}
当我调用函数加载数据时(当然,在使用其他函数保存一些数据之后),控制台的输出为零,并且用户默认值中没有保存数据。我该如何解决这个问题?
答案 0 :(得分:4)
您应该使用arrayForKey
或objectForKey
代替dataForKey
。因为您存储了Array
对象,而不是NSData
。
如下所示:
func loadTasks() {
var taskNamesLoad = defaults.arrayForKey("taskName")
println(defaults.arrayForKey("taskName"))
println(taskNamesLoad)
}
答案 1 :(得分:0)
如果要保存到用户默认值,则需要使用plist安全对象。因此,您需要使用Float
。
NSNumber