Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 更新到Xcode 12:无法转换类型为';数据请求';关闭结果类型';无效';_Ios_Swift_Alamofire_Promisekit - Fatal编程技术网

Ios 更新到Xcode 12:无法转换类型为';数据请求';关闭结果类型';无效';

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

我正在使用AlamoFire和PromiseKit进行API调用

在我升级到Xcode 12.0之前,这段代码已经运行了2年了

函数现在返回错误:“无法将“DataRequest”类型的值转换为关闭结果类型“Void”

我的职能如下:

   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错误):
打印(错误)
密封。拒绝(错误)
}
})
}
}

尝试更新播客。尝试更新播客。