2016-04-12 14 views
1

Ich habe ein Problem mit meinem schnellen Code, wenn ich meine Anwendung auf meinem Gerät ausführen werde. Wenn ich es auf dem Simulator laufe, ist alles in Ordnung, aber wenn ich es auf meinem Gerät laufen lasse, erhalte ich zwei Fehler.Swift2 Mehrdeutige Verwendung von Index, wenn ich es auf Gerät

Ich bekomme zwei Fehler in den letzten zwei Zeilen, und es heißt "mehrdeutige Verwendung von Index" auf beiden Zeilen.

Im die neuesten Xcode laufen, wenn das für jede Hilfe ist ...

let requestURL: NSURL = NSURL(string: "The webpage im getting info from")! 
    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(urlRequest) { 
     (data, response, error) -> Void in 



     let httpResponse = response as! NSHTTPURLResponse // method that access information 

     let statusCode = httpResponse.statusCode 

     if (statusCode == 200) { 
      do{ 

       let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) 


       // naming the two variables from json 
       if let counter = json["counts"] { 

      // It gets an error on both the peopleIn and peopleOut 
        let peopleIn = counter! [0] 
        let peopleOut = counter! [1] 
+0

Ich hoffe, der Zähler, d. H. Json ["counts"] ist eine richtige Array-Struktur. –

Antwort

0

json["counts"] kehrt AnyObject, hat der Compiler keine Ahnung, dass es angenommen hat, ein Array zu sein.

das Objekt in den erwarteten Typ Gegossenes mindestens

if let counter = json["counts"] as? [AnyObject] { 

Wenn der erwartete Typ spezifischer als [AnyObject] Guss es zu diesem Typ.

Wenn if let erfolgreich ist, ist die zugehörige Variable nicht optional, das Ausrufezeichen wird nicht benötigt.

let peopleIn = counter[0] 
+0

Danke für die Antwort. Es half mir, die Anwendung auf dem Gerät auszuführen, aber jetzt gibt es mir einen Fehler, der sagt: "Fehler mit Json: Fehlerdomäne = NSCOAErrorDomain Code = 3840" Ungültiger Wert um Zeichen 0. "UserInfo = {NSDebugDescription = Ungültiger Wert um Zeichen 0 .} " – Jesper

+0

Das bedeutet, dass der JSON ein ungültiges Format hat. – vadian

+0

Es funktioniert perfekt auf dem Simulator, aber nicht auf dem Gerät. Wie kommt es, dass der Simulator einen guten JSON bekommt, aber nicht das Gerät? Sollten sie nicht gleich sein? – Jesper