Ios 更新到Xcode 12:无法转换类型为';数据请求';关闭结果类型';无效';
我正在使用AlamoFire和PromiseKit进行API调用 在我升级到Xcode 12.0之前,这段代码已经运行了2年了 函数现在返回错误:“无法将“DataRequest”类型的值转换为关闭结果类型“Void” 我的职能如下:Ios 更新到Xcode 12:无法转换类型为';数据请求';关闭结果类型';无效';,ios,swift,alamofire,promisekit,Ios,Swift,Alamofire,Promisekit,我正在使用AlamoFire和PromiseKit进行API调用 在我升级到Xcode 12.0之前,这段代码已经运行了2年了 函数现在返回错误:“无法将“DataRequest”类型的值转换为关闭结果类型“Void” 我的职能如下: func fetchArticlesFromApi (API: String) -> Promise<[Article]> { return Promise<[Article]> { seal in re
func fetchArticlesFromApi (API: String) -> Promise<[Article]> {
return Promise<[Article]> { seal in
return Alamofire.request(API).validate().responseString(completionHandler: { //Error happening here
response in
switch (response.result) {
case .success(let responseString1):
//Do something
case .failure(let error):
print (error)
seal.reject(error)
}
})
}
}
func fetchArticlesFromApi(API:String)->Promise{
返回承诺{盖章
返回Alamofire.request(API.validate().responseString(completionHandler:{//此处发生错误
回应
开关(response.result){
案例。成功(让响应者1):
//做点什么
案例。失败(let错误):
打印(错误)
密封。拒绝(错误)
}
})
}
}
函数的第三行发生错误
有没有想过这次更新会有什么变化
注意:当我在xcode 11.6上运行相同的代码时,代码工作正常 我在Github上找到了答案 我不应该试图返回传递给Promise.init的闭包中的任何内容。 奇怪的是,在以前版本的Xcode中它是如何工作的 为了解决这个问题,我必须在Alamofire面前更换退货。请求。。。与= 该函数现在如下所示:
func fetchArticlesFromApi (API: String) -> Promise<[Article]> {
return Promise<[Article]> { seal in
_ = AF.request(API).validate().responseString(completionHandler: {
response in
switch (response.result) {
case .success(let responseString1):
//Do something
case .failure(let error):
print (error)
seal.reject(error)
}
})
}
}
func fetchArticlesFromApi(API:String)->Promise{
返回承诺{盖章
_=AF.request(API).validate().responseString(completionHandler:{
回应
开关(response.result){
案例。成功(让响应者1):
//做点什么
案例。失败(let错误):
打印(错误)
密封。拒绝(错误)
}
})
}
}
我在Github上找到了答案
我不应该试图返回传递给Promise.init的闭包中的任何内容。
奇怪的是,在以前版本的Xcode中它是如何工作的
为了解决这个问题,我必须在Alamofire面前更换退货。请求。。。与=
该函数现在如下所示:
func fetchArticlesFromApi (API: String) -> Promise<[Article]> {
return Promise<[Article]> { seal in
_ = AF.request(API).validate().responseString(completionHandler: {
response in
switch (response.result) {
case .success(let responseString1):
//Do something
case .failure(let error):
print (error)
seal.reject(error)
}
})
}
}
func fetchArticlesFromApi(API:String)->Promise{
返回承诺{盖章
_=AF.request(API).validate().responseString(completionHandler:{
回应
开关(response.result){
案例。成功(让响应者1):
//做点什么
案例。失败(let错误):
打印(错误)
密封。拒绝(错误)
}
})
}
}
尝试更新播客。尝试更新播客。