当我尝试根据下面的设置设置常量时,会产生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
}
答案 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")
}