0
これは簡単な質問です。コードでわかるように、すべてのケースでリターンがあります。しかし、何とかxcodeはrefresh()
のcompletionHandler
ブロックのリターンを認識しません。関数に戻り値がありません
提案がありますか?
func accessTokenWithBearer() -> String {
if !didTokenExpire() {
return "Bearer \(accessToken!)"
}else{
Token.refresh({
return "Bearer \(self.accessToken!)"
})
}
}
class func refresh(completion:()->()){
completion()
}
'Token.refresh'内の' return'は、関数ではなくブロックから戻ります。関数は、非同期呼び出しの補完ハンドラの内部から値を返すことはできません。 – dan
私は参照してください。その後、ブロックを更新するのを待ってから、トークンを返すことができますか? – Faruk
あなたの関数は 'refresh'関数のように補完ハンドラをパラメータとして受け取り、それを返す代わりに呼び出します。 – dan