【发布时间】:2015-10-20 09:18:05
【问题描述】:
我是 Swift 和 iOS 开发的新手,有些东西看不懂。我尝试使用 Alamofire 将 JSON 解析为 UiTableView。但是 JSON 的响应包含另一个 JSON 请求的嵌套 url。除此之外,我将 MBProgressHUD 用于“请稍候”视图。 当我处理所有 JSON 响应时,如何隐藏此进度视图?
我有下一个解析 JSON 的代码。
func loadFileList(){
let defaults = NSUserDefaults.standardUserDefaults()
let login = defaults.valueForKey("login") as! String
let password = defaults.valueForKey("password") as! String
Alamofire.request(.GET, Links.apiUrl)
.authenticate(user: login, password: password)
.responseJSON { response in
let json = SwiftyJSON.JSON(response.result.value!)
for (_, value):(String, SwiftyJSON.JSON) in json {
let file: CacheFile! = CacheFile(filename: value["name"].string!, preview: value["preview"].string!, id: value["id"].string!)
print (file.filename)
dispatch_async(dispatch_get_main_queue(), {
self.fileList.append(file)
self.tableView.reloadData()
})
Alamofire.request(.GET, file.layoutURL)
.authenticate(user: login, password: password)
.responseJSON{ responseLayout in
let jsonLayout = SwiftyJSON.JSON(responseLayout.result.value!)
let layoutsArray = jsonLayout["layouts"]
for (_, layoutObj):(String, SwiftyJSON.JSON) in layoutsArray{
let alias = layoutObj["alias"].string!
let layoutFile: Layout! = Layout(name: layoutObj["name"].string!, alias: Int(alias))
print (layoutFile.name)
file.addLayout(layoutFile)
}
}
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}
dispatch_async(dispatch_get_main_queue()) {
self.hideHUD()
}
}
}
但是,当 HUD 隐藏并且数据显示在视图中时,它会解析嵌套的 JSON。如何解决?
P.S 或者如果没有 Alamofire,我该怎么做?
【问题讨论】: