JSON数据 - 完成处理程序

时间:2014-12-28 18:24:33

标签: ios xcode swift

我是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数据。

有哪些替代方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于println(self.sales[0])而崩溃了。您试图显示甚至没有下载的销售额。将此行放在完成块的末尾,您应该没问题