如何将 NSUserDefault 设置设置为实例变量?
How do I set NSUserDefault settings as Instance Variables?
当我尝试仅根据如下设置设置常量时,结果为 Optional("value")。
let accesstoken = NSUserDefaults.standardUserDefaults().stringForKey("accessToken")
let userId = NSUserDefaults.standardUserDefaults().stringForKey("userId")
如果我像下面那样操作,我会收到一条错误消息,指出变量在其初始值内使用。我在这里似乎赢不了。我做错了什么?
var accesstoken = String()
var userId = Int()
if let atString = NSUserDefaults.standardUserDefaults().stringForKey("accessToken") {
accesstoken = atString
}
if let userIdString = NSUserDefaults.standardUserDefaults().stringForKey("userId") {
userId = userIdString
}
您可以通过只读计算 属性 结合 nil coalescing operator“??”来实现您想要的效果。像这样尝试:
var accessToken: String {
return NSUserDefaults().stringForKey("accessToken") ?? ""
}
var userId: String {
return NSUserDefaults().stringForKey("userId") ?? ""
}
或者如果您的用户 ID 需要 Int
var userId: Int {
return NSUserDefaults().integerForKey("userId")
}
当我尝试仅根据如下设置设置常量时,结果为 Optional("value")。
let accesstoken = NSUserDefaults.standardUserDefaults().stringForKey("accessToken")
let userId = NSUserDefaults.standardUserDefaults().stringForKey("userId")
如果我像下面那样操作,我会收到一条错误消息,指出变量在其初始值内使用。我在这里似乎赢不了。我做错了什么?
var accesstoken = String()
var userId = Int()
if let atString = NSUserDefaults.standardUserDefaults().stringForKey("accessToken") {
accesstoken = atString
}
if let userIdString = NSUserDefaults.standardUserDefaults().stringForKey("userId") {
userId = userIdString
}
您可以通过只读计算 属性 结合 nil coalescing operator“??”来实现您想要的效果。像这样尝试:
var accessToken: String {
return NSUserDefaults().stringForKey("accessToken") ?? ""
}
var userId: String {
return NSUserDefaults().stringForKey("userId") ?? ""
}
或者如果您的用户 ID 需要 Int
var userId: Int {
return NSUserDefaults().integerForKey("userId")
}