从“(_, _) throws -> ()”类型的抛出函数到非抛出函数类型“(JSON?, Error?) -> Void”的无效转换
Invalid conversion from throwing function of type '(_, _) throws -> ()' to non-throwing function type '(JSON?, Error?) -> Void'
我遇到了
的错误
EduappRestClient.request(with: URLString, method: .post, parameters: parameters) { (json, error) in
guard error == nil, let json = json else {
completion(nil, error)
return
}
let result = try JSONDecoder().decode(QuestionModel.self, from: json)
completion(result, nil)
}
这是一个 API 我正在打电话,我的完整源代码可以在以下位置找到
https://github.com/WilliamLoke/quizApp
我可以知道这行错误代码是什么问题吗?
由于预计此块不会抛出错误,因此您需要将抛出调用包装在 do catch
块中:
EduappRestClient.request(with: URLString, method: .post, parameters: parameters) { (json, error) in
guard error == nil, let json = json else {
completion(nil, error)
return
}
do {
let result = try JSONDecoder().decode(QuestionModel.self, from: json)
completion(result, nil)
} catch let error {
completion(nil, error)
}
}
我遇到了同样的问题,解决方法很简单:你可以使用 try? 而不是 try
guard let result = try? JSONDecoder().decode(QuestionModel.self, from: json)
我遇到了
的错误 EduappRestClient.request(with: URLString, method: .post, parameters: parameters) { (json, error) in
guard error == nil, let json = json else {
completion(nil, error)
return
}
let result = try JSONDecoder().decode(QuestionModel.self, from: json)
completion(result, nil)
}
这是一个 API 我正在打电话,我的完整源代码可以在以下位置找到 https://github.com/WilliamLoke/quizApp
我可以知道这行错误代码是什么问题吗?
由于预计此块不会抛出错误,因此您需要将抛出调用包装在 do catch
块中:
EduappRestClient.request(with: URLString, method: .post, parameters: parameters) { (json, error) in
guard error == nil, let json = json else {
completion(nil, error)
return
}
do {
let result = try JSONDecoder().decode(QuestionModel.self, from: json)
completion(result, nil)
} catch let error {
completion(nil, error)
}
}
我遇到了同样的问题,解决方法很简单:你可以使用 try? 而不是 try
guard let result = try? JSONDecoder().decode(QuestionModel.self, from: json)