Ich versuche, eine Liste der Artikel herunterzuladen und in eine Tabellenansicht einzufügen. Es scheint jedoch ein Problem zu haben, die JSON-Datei abzurufen und zu analysieren.Fehler beim Analysieren von JSON in Swift 2.0
Mein Code ist wie folgt:
override func viewDidLoad() {
super.viewDidLoad()
self.downloadArticles()
self.tableView.reloadData()
}
func downloadArticles(){
var url: NSURL
url = NSURL(string: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feed%20where%20url=%27www.abc.net.au%2Fnews%2Ffeed%2F51120%2Frss.xml%27&format=json")!
print(url)
let task = NSURLSession.sharedSession().dataTaskWithURL(url){
(data, response, error) in
if (error != nil){
print("Error \(error)")
} else{
self.parseArticleJSON(data!)
}
self.syncCompleted = true
self.tableView.reloadData()
}
task.resume()
}
func parseArticleJSON(articleJSON:NSData)
{
do{
let result = try NSJSONSerialization.JSONObjectWithData(articleJSON, options: NSJSONReadingOptions.MutableContainers) as? NSArray
//let jsonData:NSArray = (try NSJSONSerialization.JSONObjectWithData(articleJSON, options:NSJSONReadingOptions.MutableContainers) as? NSArray)!
let newArticlesArray = result as NSArray!
//NSLog("Found \(newArticlesArray.count) new articles!")
for article in (newArticlesArray as NSArray as! [NSDictionary])
{
print (article.objectForKey("title")! as? String)
//let a = Article (t: <#T##String#>, da: <#T##String#>, de: <#T##String#>, i: <#T##NSURL#>)
//articlesArray.addObject(a);
}
}catch {
print("JSON Serialization error")
}
}
Im parseArticleJSON Methode (ich weiß, es ist nicht alles komplett fertig ist). Ich erhalte den Fehler in Zeile:
for article in (newArticlesArray as NSArray as! [NSDictionary])
heißt es:
fatal error: unexpectedly found nil while unwrapping an Optional value
habe ich versucht, einige der Forschung hier auf diesen Foren zu tun, aber ich konnte keine Antwort finden, die mir helfen würde, also fragte ich mich, ob jemand mir helfen könnte.
Ich brauche die nativen Swift-JSON-Methoden, um all dies zu tun.
Vielen Dank im Voraus!
Hi, da Ihre Ergebnisvariable null und IS optional sein könnte, sollte die Anweisung for ... in der Anweisung auch Variablen mit optionalen Wrapper verwenden, d. H. "Wie?". Probieren Sie es aus ... –