Ich habe einen Code, der einwandfrei funktioniert und keine Warnungen zum Parsen von JSON von meinem Server auslöst. Es läuft und gibt die Werte in der Konsole ohne Probleme zurück, bis ich versuche, das AWSNS-Framework zu importieren, woraufhin es die Warnung im Titel anzeigt und beim Ausführen abstürzt mit der Aussage "- [__ NSCFArray length]: unerkannter Selektor an Instanz gesendet". Irgendwelche Ideen, warum dies fehlschlagen könnte, wenn ich das SNS-Framework von Amazon importiere?Aus 'String ?!' zu nicht verwandtem Typ '[[String: AnyObject]]' schlägt immer fehl
Hier ist mein Code:
import UIKit
import AWSSNS
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.getEvents()
}
func getEvents(){
let requestURL: NSURL = NSURL(string: "http://www.example.com/mydirectory/JSONFile")!
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
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
print("File downloaded successfully.")
do{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
if let events = json["events"] as? [[String: AnyObject]] {
for event in events {
if let eventName = event["eventName"] as? String {
if let day = event["day"] as? String {
print(day,eventName)
}
}
}
}
}catch {
print("Error with Json: \(error)")
}
}
}
task.resume()
}
Die Warnung erscheint in der Zeile "if let events = json [" events "] as? [[String: AnyObject]]" –
Klicken Sie mit der linken Maustaste auf json, um zu sehen, welchen Typ Xcode die Variable hat, beide mit und ohne den Import – Feldur