2015-05-22 13 views
12
var url: NSURL = NSURL(string: urlPath)! 

    var request: NSMutableURLRequest = NSMutableURLRequest(URL: url) 
    request.setValue("Basic \(base64EncodedCredential)", forHTTPHeaderField: "Authorization") 
    request.HTTPMethod = "GET" 

    var dataVal: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error:nil)! 

    var err: NSError 
    println(dataVal) 


    //var jsonResult : NSDictionary? 
    var jsonResult = NSJSONSerialization.JSONObjectWithData(dataVal, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary 

    println("Synchronous \(jsonResult)") 
    jsonResult["records"] 

Qui è dove l'errore accade, voglio solo prendere un valore dal mio jsonResult, che è stampato correttamente alla console.non può indicizzare un valore di tipo NSDictionary con un indice di tipo stringa

risposta

18

Stai typecasting il JsonResult come NSDictionary, invece utilizzare [String:AnyObject]

Se si utilizza NSDictionary, si dovrebbe usare valueForKey(key) o objectForKey(key) metodi di NSDictionary per ottenere il valore per la chiave.

var url: NSURL = NSURL(string: urlPath)! 
    var err: NSError? 

     var request: NSMutableURLRequest = NSMutableURLRequest(URL: url) 
     request.setValue("Basic \(base64EncodedCredential)", forHTTPHeaderField: "Authorization") 
     request.HTTPMethod = "GET" 

     var dataVal: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error:nil)! 

     var err: NSError 
     println(dataVal) 


     //var jsonResult : NSDictionary? 
     var jsonResult:AnyObject? = NSJSONSerialization.JSONObjectWithData(dataVal, options: NSJSONReadingOptions.MutableLeaves, error: &err) 

     println("Synchronous \(jsonResult)") 
     if let result = jsonResult as? [String: AnyObject] { 
      if let oneValue = result["records"] as? String { //Here i am considering value for jsonResult["records"] as String, if it other than String, please change it. 
      println(oneValue) 
      } 
     } 
+0

Ancora schiantarsi con lo stesso errore – BorjaCin

+0

var = JsonResult NSJSONSerialization.JSONObjectWithData (dataVal, opzioni: NSJSONReadingOptions.MutableLeaves, errore: & ERR) utilizzare questa linea. – Amit89

+0

Modificata la risposta. – Amit89

Problemi correlati