我遇到错误
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
我可能知道我得到这行错误代码的问题是什么?
答案 0 :(得分:1)
由于预计此块不会引发错误,因此您需要将抛出的调用包装在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)
}
}
答案 1 :(得分:0)
我遇到了同样的问题,解决方法很简单:您可以使用 try? 而不是 try
guard let result = try? JSONDecoder().decode(QuestionModel.self, from: json)