缺少函数返回

时间:2016-06-22 17:14:26

标签: ios swift if-statement return

这是一个简单的问题。正如您在代码中看到的那样,每种情况都有返回。但是,不知何故,xcode无法识别refresh()的{​​{1}}块中的返回值。

有什么建议吗?

completionHandler

1 个答案:

答案 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
    }
}