Swift4错误无法转换类型'(_) - >的值虚空'预期参数类型'(_) - > _'

时间:2018-02-22 16:31:05

标签: swift swift4 promisekit

在Swift 4中使用PromiseKit进行API调用:

 let apiCall = ApiManager.shared.fetchActors()
    apiCall.then { actors -> Void in
        self.dataSourceArray = actors
        self.tableView.reloadData()
        }.catch { error -> Void in

        }

我收到此错误:

  

无法转换类型'() - >的值虚空'预期参数类型'() - > _'

如何解决此问题?

4 个答案:

答案 0 :(得分:4)

使用 .done 代替使用。然后

答案 1 :(得分:2)

解决方案:

func fetchActorsFromApi () -> Promise<[Actor]> {
    return Promise<[Actor]> { seal in
        return Alamofire.request(API_URL).validate().responseString(completionHandler: {
            response in

            switch (response.result) {
            case .success(let responseString1):
                print (responseString1) // should be converted into the modelclass
                let actorResponse = ActorApiResponse(JSONString: "\(responseString1)")!
                seal.fulfill(actorResponse.actors!)
            case .failure(let error):
                print (error)
                seal.reject(error)
            }
        })
    }
}

答案 2 :(得分:2)

let apiCall = ApiManager.shared.fetchActorFromAPI()
        let _ = apiCall.done {
            actors -> Void in
            self.dataSource = actors
            self.myTableView.reloadData()
            }.catch {
                error -> Void in
        }

使用此。在新版本的PromiseKit .done()函数中可以做到这一点。文档:https://github.com/mxcl/PromiseKit

答案 3 :(得分:1)

.catch { error -> Void in替换为.catch { error in