Swift为现有用户默认值添加值

时间:2016-10-13 04:19:09

标签: ios nsuserdefaults swift3 swiftyuserdefaults

我获得了用户默认值,例如键“abc”,它包含一个字符串。

此密钥中存储的最后一个字符串是“aaa”。

现在,我想为此密钥存储一个额外的值,但我不想删除最后一个值“aaa”,因为我需要它。

我希望在第二个retreive中包含一个字符串数组:[“aaa”,“some_other_value”,“some_other_value2”...]。

到目前为止,这是我的代码,用于存储用户默认值中的信息:

self.user_defaults.set(self.myTextField.text, forKey:"asd")

这是获取数据的代码:

if let arr = user_defaults.string(forKey:"asd"){
    print (arr)
}

2 个答案:

答案 0 :(得分:5)

尝试使用以下代码保存新值:

if let arr = user_defaults.array(forKey: "asd")
        {
            var arrvalues = arr as! [String]
            arrvalues.append(self.myTextField.text)
            self.user_defaults.set(arrvalues, forKey:"asd")
            self.user_defaults.synchronize()
            print (arr)
        }
        else
        {
            self.user_defaults.set([self.myTextField.text], forKey:"asd")
        }

这是获取数据的代码:

if let arr = user_defaults.array(forKey:"asd"){
    print (arr)
}

答案 1 :(得分:0)

    let asdArr = [String]()
    if NSUserDefaults.standardUserDefaults().objectForKey("asd") != nil {
      asdArr = NSUserDefaults.standardUserDefaults().objectForKey("asd")
    }
    asdArr.append(self.myTextField.text)
    NSUserDefaults.standardUserDefaults().setObject(asdArr, forKey: "asd")