gpt4 book ai didi

ios - 从 '(_) throws -> ()'类型的 throw 函数无效转换为 '(Response) -> Void'类型的非 throw 函数

转载 作者:行者123 更新时间:2023-12-03 08:19:18 29 4
gpt4 key购买 nike

我需要处理这样的api错误代码,并为某些状态代码抛出错误。但是遵循代码显示了以上错误。我怎样才能做到这一点?

func login(data: [String: Any], completion: @escaping (ResponseModel<SignUpModel>?) -> Void) throws {
NetworkAdapter.request(target: .login(data: data), success: { (response) in

if let responseModel = try? JSONDecoder().decode(ResponseModel<SignUpModel>.self,from: response.data) {
switch responseModel.statusCode {
case 2000:
completion(responseModel)
case 4005:
throw ValidationError.athenticationFailure
case .none,.some:
break
}
completion(responseModel)
} else {
}
})
}

最佳答案

你不能

throw ValidationError.athenticationFailure

因为请求是异步的。您可以将完成类型更改为 Result<ResponseModel<SignUpModel>, ValidationError>以返回
completion(.success(responseModel))

成功与
completion(.failure(athenticationFailure)

失败。顺便说一句,我买了 u😉

关于ios - 从 '(_) throws -> ()'类型的 throw 函数无效转换为 '(Response) -> Void'类型的非 throw 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61350402/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com