Swift 将值添加到现有用户默认值
Posted
技术标签:
【中文标题】Swift 将值添加到现有用户默认值【英文标题】:Swift Adding Value to Existing User Defaults Value 【发布时间】: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。并且每次都更新它
【参考方案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")
【讨论】:
这将在应用程序第一次运行时崩溃。以上是关于Swift 将值添加到现有用户默认值的主要内容,如果未能解决你的问题,请参考以下文章