【问题标题】:Swift Adding Value to Existing User Defaults ValueSwift 将值添加到现有用户默认值
【发布时间】:2016-10-13 04:19:08
【问题描述】:

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

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

现在,我想为这个键存储一个附加值,但我不想删除最后一个值“aaa”,因为我需要它。

我希望在第二次检索时包含一个字符串数组:["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)
}

【问题讨论】:

  • 如果你想存储一个数组,为什么只存储一个String
  • 您可以使用 plist 代替 userdefaults。并且每次都更新它

标签: ios nsuserdefaults swift3 swiftyuserdefaults


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
        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")
    

    【讨论】:

    • 这将在应用程序第一次运行时崩溃。
    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2021-12-11
    • 2022-11-12
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多