我是 iOS 开发新手,需要以下问题的帮助。 我有下面的代码,它从网络上下载一个 JSON 数据并用它填充一个数组。
let urlPath = "……………………………"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
if (error != nil) {
println(error)
} else {
let jsonResult: AnyObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)!
dispatch_async(dispatch_get_main_queue()) {
for var i = 0; i < jsonResult.count; i++ {
self.sales[i] = jsonResult[i]["daily_sales"] as NSString
}
}
}
})
task.resume()
println(self.sales[0])
最后,应用程序崩溃了,因为它没有等待 JSON 数据的下载。
有哪些替代方法可以解决这个问题?
最佳答案
它因为这个 println(self.sales[0])
而崩溃。您试图显示甚至没有下载的销售额。把这一行放在你的完成 block 的末尾,你应该没问题
关于ios - JSON 数据 - 完成处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679303/