json - 在 Swift 中将 json 项添加到字典

标签 json swift

我刚刚开始使用 Swift,我正在尝试遍历 json 响应并将其添加到字典中。但似乎没有添加任何内容,不确定问题可能是什么范围?我正在使用 SwiftyJSON。在我的代码中,我能够像这样在 for 循环中打印新闻标题 json[0]["title"] 等。但是当我打印字典的值时,什么也没有输出。

// news dictionary
var newsDictionary = [String] ()

override func viewDidLoad() {
    super.viewDidLoad()

    // get news feed url
    let url = NSURL(string: baseUrl + "news")

    // create session
    let session = NSURLSession.sharedSession()

    // create data task
    let task = session.dataTaskWithURL(url!, completionHandler: { (data: NSData!, response:NSURLResponse!,
        error: NSError!) -> Void in

        // convert data object to json
        let json = JSON(data: data)

        for var i = 0; i < json.count; ++i {
            // get news title from json object
            var title = json[i]["title"].string
            // add to dictionary
            self.newsDictionary.append(title!)
        }

    })

    for news in newsDictionary{
        println(news)
    }

    // execute call
    task.resume()





    // Do any additional setup after loading the view.
}

最佳答案

这是因为您有竞争条件。您的 for news in newsDictionary 循环很可能在下载任何数据并在 session.dataTaskWithURL 中处理之前执行。

将您的 for 循环放入 completionHandler 中,您应该会看到数据。

关于json - 在 Swift 中将 json 项添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130081/

相关文章:

swift - 在 Swift 中刷新后刷新控件不会向上滑动屏幕

java - 如何使用 Java 从无规则文本中提取 JSON

java - 使用gson解析空Json数组

ios - 初学者 : Need Help Accessing Magnetometer Data using Swift

ios - UIView.animate 无法在 swift 中正常工作

ios - 如何在 Collection View 的底部/页脚中添加 uiactivity 指示器?

arrays - 尝试将对象映射器模型转换为数组

php - 如何从 JSON 编码的字符串中修剪换行符?

javascript - 即时重新填充 HTML 表格

javascript - HTML/Javascript : how to access JSON data loaded in a script tag with src set