我刚刚开始使用 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/