如何将NSUserDefault设置设置为实例变量?

时间:2015-07-10 21:55:16

标签: swift nsuserdefaults 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
}

1 个答案:

答案 0 :(得分:1)

您可以使用只读计算属性与nil coalescing operator" ??"结合使用,实现您想要的效果。试试这样:

var accessToken: String {
    return NSUserDefaults().stringForKey("accessToken") ?? ""
}

var userId: String {
    return NSUserDefaults().stringForKey("userId") ?? ""
}

或者如果您的userID需要Int

var userId: Int {
    return NSUserDefaults().integerForKey("userId")
}