Sto provando a recuperare i valori da una matrice ottenuta da una richiesta Web JSON. Ma non riesco a far funzionare la funzione valueForKey in modo da poter applicare la stringa a un'etichetta. L'esempio seguente cerca API di Apple per il software. Come test, voglio essere in grado di applicare la chiave "trackName" a un UILabel, ma tutto ciò che provo, o arresto anomalo o ritorno nil.Ottenere i valori dalla matrice JSON in Swift
Ecco il mio codice
func searchFunction(searchQuery: NSString) {
var url : NSURL = NSURL.URLWithString("https://itunes.apple.com/search?term=\(searchQuery)&media=software")
var request: NSURLRequest = NSURLRequest(URL:url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let task : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
var newdata : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var info : NSArray = newdata.valueForKey("results") as NSArray
var name: String? = info.valueForKey("trackName") as? String // Returns nil
println(name)//Returns nil
var name2 : NSString = info.valueForKey("trackName") as NSString //Crashes
println(name2) //Crashes
});
task.resume()
println("Resumed")
}
I commenti successivi alle variabili spiega ciò che accade con ciascuno di essi. Qualcuno può spiegare come posso convertire valueForKey ("trackName") in una stringa che può essere applicata a un'etichetta?
Grazie!
Impressionante! Ha funzionato! Perché devo specificare l'indice, "0"? In Objective-C potrei usare un modo simile a quello che ho e sputerebbe una stringa. – DookieMan