我有JSON连接,加载JSON字符串时是怎么做的,如果不加载 - 期望完全加载。在这种情况下加载后我想显示一个Toast消息。通常在加载信息时会有几秒钟的延迟。
Alamofire.request("https://codewithchris.com/code/afsample.json").responseJSON{ response in
if let value = response.result.value{
let json = JSON(value)
\\ view.makeToast("JSONIsLoaded", duration: 2, position: bottomLayoutGuide, title: "title", image: UIImage (named: "logo.jpg"), style: style ) { (success: Bool) in}
}
}
}
答案 0 :(得分:1)
以下是您如何使用Alamofire自动验证响应。如果响应返回到200范围内,您可以运行一些代码,如果它返回任何其他内容,它将失败,您可以在那里发现任何错误。您还可以在以下代码中启动和停止活动指示器,以便用户注意到正在进行后台操作。
//start activity indicator here
Alamofire.request("https://codewithchris.com/code/afsample.json").validate().responseJSON { response in
switch response.result {
case .success(let value):
if let json = JSON(value) {
// Do whatever you want with json
//hide activity indicator here
}
else
{
//No data returned
}
case .failure(let error):
print(error)
//hide activity indicator here
}
}
答案 1 :(得分:0)
Alamofire在后台提出要求。所以你也会在背景线程中得到回应。但是我们应该刷新或更新主线程中的ui,因为在backgroud线程中会有滞后或者在ui上找不到任何更新。因此,请使用DispatchQueue.main.async {ui updates code}