在Swift中保存为用户默认值

时间:2015-03-24 16:24:31

标签: ios arrays swift nsuserdefaults

我目前正在尝试将数组保存为用户默认值。

这是我的代码:

//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)
}

当我调用函数加载数据时(当然,在使用其他函数保存一些数据之后),控制台的输出为零,并且用户默认值中没有保存数据。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您应该使用arrayForKeyobjectForKey代替dataForKey。因为您存储了Array对象,而不是NSData

如下所示:

func loadTasks() {
    var taskNamesLoad = defaults.arrayForKey("taskName")

    println(defaults.arrayForKey("taskName"))
    println(taskNamesLoad)
}

答案 1 :(得分:0)

如果要保存到用户默认值,则需要使用plist安全对象。因此,您需要使用Float

,而不是使用NSNumber