如何在userDefaults迅速循环
我将数据保存到使用2文本字段作为字符串,字符串userDeafults但我想知道如何检索所有显示的数据或者使用循环或功能如何在userDefaults迅速循环
let save = UserDefaults.standard
let heading = headingText.text
let description = desxriptionTexr.text
save.set(description, forKey: heading!)
要获得所有键和相应值UserDefaults,你可以使用:
for (key, value) in UserDefaults.standard.dictionaryRepresentation() {
print("\(key) = \(value) \n")
}
在迅速3,你可以存储和使用检索:
UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")
在这里你将标题设置为标题,并将值作为描述。 可以使用UserDefaults.standard.object(forKey:)
,UserDefaults.standard.string(forKey:)
,UserDefaults.standard.value(forKey:)
等功能检索userDefaults值。
所以它能够更好地保存2个不同的密钥的标题和描述可能会像
let save = UserDefaults.standard
let heading = headingText.text
let description = desxriptionTexr.text
save.set(description, forKey: "description")
save.set(heading, forKey: "heading")
而且你可以检索像
let description = UserDefaults.standard.string(forKey:"description")
let heading = UserDefaults.standard.string(forKey:"heading")
甚至有'字符串(forKey:' – vadian
我只是把它作为一般,我已经更新了答案,谢谢你的反馈。 –
如果你有多个字符串,只是值保存为数组
UserDefaults.standard.set(YourStringArray, forKey: "stringArr")
let arr = UserDefaults.standard.stringArray(forKey: "stringArr")
for s in arr! {
//do stuff
}
我觉得是不是做了正确的方式。
我建议你把你的价值观转换成字典,并设置字典入UserDefaults。
let DictKey = "MyKeyForDictionary"
var userDefaults = UserDefaults.standard
// create your dictionary
let dict: [String : Any] = [
"value1": "Test",
"value2": 2
]
// set the dictionary
userDefaults.set(dict, forKey: DictKey)
// get the dictionary
let dictionary = userDefaults.object(forKey: DictKey) as? [String: Any]
// get value from
let value = dictionary?["value2"]
// iterate on all keys
guard let dictionary = dictionary else {
return
}
for (key, val) in dictionary.enumerated() {
}
我认为不是一个正确的方法。你可以阅读我的答案略低于 – thedjnivek
可能回答你的问题:[点击这里](https://stackoverflow.com/a/44940571/4447772) –
请检查我的回答 –