我是iOS开发的新手,需要以下问题的帮助。 我有以下代码从Web下载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数据。
有哪些替代方法可以解决这个问题?
答案 0 :(得分:1)
由于println(self.sales[0])
而崩溃了。您试图显示甚至没有下载的销售额。将此行放在完成块的末尾,您应该没问题