如何将 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")
}