这是一个简单的问题。正如您在代码中看到的那样,每种情况都有返回。但是,不知何故,xcode无法识别refresh()
的{{1}}块中的返回值。
有什么建议吗?
completionHandler
答案 0 :(得分:3)
如上所述,您应该向accessTokenWithBearer
函数添加完成处理程序。
func accessTokenWithBearer(completion: String -> ()) {
if !didTokenExpire() {
completion("Bearer \(accessToken!)")
}else{
Token.refresh({
completion("Bearer \(self.accessToken!)")
})
}
}
你也可以同时拥有一个完成处理程序和一个返回值。
func accessTokenWithBearer(completion: String -> ()) -> String? {
if !didTokenExpire() {
return "Bearer \(accessToken!)"
}else{
Token.refresh({
completion("Bearer \(self.accessToken!)")
})
return nil
}
}