我从服务器请求时遇到问题,一切都很好 突然,Alamofire.request无法访问responseJSON并且无法访问该函数的主体,并且它返回,我该怎么办? 我在navigationController中使用了多个Alamofire请求,但是在发生两三个请求之后,就会发生这种情况! 我真的很麻烦,请帮助我!
此代码无法执行
let group = DispatchGroup()
group.enter()
Alamofire.request(url, method: .get, parameters: nil,
encoding:
JSONEncoding.default, headers: header as? HTTPHeaders)
.responseJSON { (response) in
if response.result.isSuccess{
if let response = response.result.value {
let json = JSON(response)
self.updateAnswers(json: json)
print(json.arrayValue)
group.leave()
}
}
}
答案 0 :(得分:0)
如果操作失败,则应该深入研究一下返回的错误。您甚至可能希望查看响应的主体(如果它是开发服务器,它可能会在响应的主体中提供一些有用的错误消息)。
let group = DispatchGroup()
group.enter()
Alamofire.request(...)
.responseJSON { response in
defer { group.leave() }
switch response.result {
case .failure(let error):
print(error)
print(response.response ?? "no HTTPURLResponse")
if let data = response.data {
if let string = String(data: data, encoding: .utf8) {
print(string)
} else {
print(data as NSData)
}
} else {
print("no data")
}
case .success(let json):
print(json)
}
}
顺便说一句,我建议将leave
调用移至任何if
/ switch
语句之外,因为您想确保调度组是否满意,无论它是否成功与否。
但是,最重要的是,只有开始仔细地查看返回了什么错误,您才能诊断出问题。