ios - JSON 数据 - 完成处理程序

标签 ios xcode swift

我是 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/

相关文章:

ios - 如何在 SpriteKit 中获得像素化纹理?

IOS 9 不请求远程通知权限

swift - 如何按元素相乘两个数组

ios - 用 SpriteKit 定制的数字替换数字

ios - Xcode Swift 游戏(碰撞问题)

swift - macOS - 用于打开商店的模型与用于创建商店的模型不兼容 Xcode 8.1/Swift 3

iphone - 如何左右对齐表格单元格上的标签

javascript - Cordova IOS 应用程序,失去使用 window.localStorage 存储的值(value)

android - 如何启动照片应用程序以 HTML 格式在手机上查看照片?

ios - 如何在 Swift 和 Xcode 6 中使用不同的 api url 进行暂存和生产