【发布时间】:2018-12-14 13:58:07
【问题描述】:
首先,我知道 v6 中的实现发生了变化,并且我按预期使用了 seal 对象,我遇到的问题是,即使按照字母的示例,它仍然会给我旧的Cannot convert value of type '(_) -> CustomerLoginResponse' to expected argument type '(_) -> _' 错误。
这是我返回承诺的函数:
static func makeCustomerLoginRequest(userName: String, password: String) -> Promise<CustomerLoginResponse>
{
return Promise
{ seal in
Alamofire.request(ApiProvider.buildUrl(), method: .post, parameters: ApiObjectFactory.Requests.createCustomerLoginRequest(userName: userName, password: password).toXML(), encoding: XMLEncoding.default, headers: Constants.Header)
.responseXMLObject { (resp: DataResponse<CustomerLoginResponse>) in
if let error = resp.error
{
seal.reject(error)
}
guard let Xml = resp.result.value else {
return seal.reject(ApiError.credentialError)
}
seal.fulfill(Xml)
}
}
}
这是使用它的函数:
static func Login(userName: String, password: String) {
ApiClient.makeCustomerLoginRequest(userName: userName, password: password).then { data -> CustomerLoginResponse in
}
}
【问题讨论】:
标签: swift alamofire promisekit