2016-09-08 2 views
4

Ich bin mit IOS10 auf meine App-Kompatibilität zu arbeiten und ich habe ein Problem, wenn die Ausführung dieses Code:IOS 10 objectForKey („Schlüssel“) Kompatibilität

if let results = NSJSONSerialization.TryJSONObjectWithData(data, options: []) as? NSDictionary { 
    print(" results : \(results)"); 

    if let networkPosts = results["results"] as? NSMutableArray { 
     print(" here"); 

       for i in 0 ..< networkPosts.count { 
        let post:Post = Post(postDictionary: networkPosts[i] as! NSDictionary, context: (UIApplication.sharedApplication().delegate as! 

AppDelegate).coreDataHelper.managedObjectContext); 
} 
     } 
    } 

ich die Ergebnisse sehen kann, so dass die JSON in Ordnung ist, aber nachdem ich den Ergebnisschlüssel des Wörterbuchs nicht sehen kann. "Hier" wird nie auf meiner Konsole gedruckt. Ich habe versucht, einen Haltepunkt zu machen und es passiert auch nicht dort. Ich habe auch versucht mit .objectForKey("key") aber das gleiche Ergebnis:/

Kann mir bitte jemand helfen?

Wenn ich results["results"] as? [[String: Any]]

Dann

networkPosts [i] wie! NSDictionary nicht immer

+2

Post JSON, dass Sie erhalten –

+0

Bitte zeigen Sie uns Ihre json Antwort. –

+0

Haben Sie 'Ergebnisse' Schlüssel in Ihrem JSON? oder ist es "Ergebnis"? – Santosh

Antwort

1

Sie die NSJSONReadingMutableContainers Option verwenden sollten, wenn TryJSONObjectWithData Verwendung von Arrays und Wörterbücher mit Spielplatz für Swift 3 wandelbar

https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/#//apple_ref/c/tdef/NSJSONReadingOptions

Beispiel getestet zu machen:

+0

Sollte ich MutableContainers anstelle von NSMutableArray verwenden? –

+0

Ich bearbeitete die Antwort (swift 3 Spielplatz kompatibel) – matsoftware

+0

Ich habe den Fehler "Verwendung der nicht aufgelösten Bezeichner 'JSONSerialization'". Fehle ich einen Import? Ich habe nur Foundation und UIKIt –