无法获取存储在UserDefaults
中的字符串值var videoString = String()
在视图中加载
videoString = "http://site4brandz.com/cphp/26/uploads/oggy.mp4"
UserDefaults.standard.set(videoString as String, forKey: CurrentURL)
UserDefaults.standard.synchronize()
print("\(UserDefaults.standard.object(forKey: CurrentURL))")
它的打印方式如下:
Optional(http://site4brandz.com/cphp/26/uploads/oggy.mp4)
当我回去检查相同的字符串时
if (UserDefaults.standard.value(forKey: CurrentURL) != nil) {
print("\(UserDefaults.standard.value(forKey: CurrentURL))")
let runningSrtring = UserDefaults.standard.value(forKey: CurrentURL)!
}
但现在它打印为Optional(4.067826)
我在哪里犯了错误?
答案 0 :(得分:7)
在Swift3中
如何使用UserDefaults.standard.string(forKey: CurrentURL)!
代替UserDefaults.standard.value(forKey: CurrentURL)!
答案 1 :(得分:1)
您可以在UserDefaults
NSUserDefaults.standardUserDefaults().setObject(videoString, forKey: CurrentURL)
从
获取值if let string = NSUserDefaults.standardUserDefaults().stringforKey(CurrentURL) {
}
在Swift 3中
您可以在UserDefaults
UserDefaults.standard.set(videoString, forKey: CurrentURL)
通过UserDefaults
if let string = UserDefaults.standard.string(forKey: CurrentURL) {
}
确保您的密钥“CurrentURL”具有相同的值
答案 2 :(得分:1)
更改您的UserDefaults设置代码:
来自:
UserDefaults.standard.set(videoString as String, forKey: CurrentURL)
到
if videoString {
UserDefaults.standard.set(videoString!, forKey: CurrentURL)
}
并检查不同的内容!
答案 3 :(得分:1)
尝试使用Swift3:
extension UserDefaults {
func setValue(value: String, key: String) {
set(value, forKey: key)
synchronize()
}
func getValue(key: String) -> String {
return string(forKey: key)
}
}
用法:
let videoString: String = "http://site4brandz.com/cphp/26/uploads/oggy.mp4"
UserDefaults.standard.setValue(value: videoString, key: CurrentURL)
并检查:
print(UserDefaults.standard.getValue(key: CurrentURL))
请注意,我使用 键 作为String
。按预期将键的类型更改为 CurrentURL 类型(例如:URL Type
,...)