我正在尝试从UserDefault
获取数据,但是当我这样做时却遇到错误
var sharedPreference: UserDefaults = UserDefaults.init(suiteName: "user-key-value")!
func getLastLoginClientId() -> Int64? {
for (key, value) in sharedPreference.dictionaryRepresentation() {
if key == LAST_USER {
return value as! Int64
}
}
return nil
}
我知道我的钥匙有一些值,但是返回它时会抛出错误。
这就是我的保存方式
func setLastLoginClientId(clientId: Int64) {
sharedPreference.set(clientId, forKey: LAST_USER)
sharedPreference.synchronize()
}
答案 0 :(得分:2)
我认为您可以做些简单的事情
func getLastLoginClientId() -> Int64? {
return sharedPreference.value(forKey: LAST_USER) as? Int64
}
这是我测试过的
struct CustomUserDefaults {
var sharedPreference : UserDefaults = UserDefaults.init(suiteName: "user-key-value")!
let LAST_USER = "test"
func test() {
let value = Int64(20.0)
self.setLastLoginClientId(value)
let testValue = getLastLoginClientId()
print(testValue) // 20.0
}
func setLastLoginClientId(_ value: Int64) {
sharedPreference.set(value, forKey: LAST_USER)
}
func getLastLoginClientId() -> Int64? {
return sharedPreference.value(forKey: LAST_USER) as? Int64
}
}