2016-07-24 10 views
1

Swift 3 auf Xcode 8β3.URLSession Trowing einer NSURLSession-Ausnahme

Irgendwelche Ideen, warum der folgende Code den Fehler wirft (weiter) unten, vor allem da ich URLSession nicht NSURLSession verwende?

CODE

public func updateCurrentConditions() { 

    let session = URLSession() 
    let url  = URL(string: "http://api.wunderground.com/api/\(key)/conditions/51.32,-1.0.json")! 
    let loadDataTask = session.dataTask(with: url, completionHandler: self.dataHandler) 
    loadDataTask.resume() 
} 

private func dataHandler(data: Data?, response: URLResponse?, error: NSError?) -> Void { 
    print("dataHandler executed.") 
} 

ERROR

fehlgeschlagen: gefangen "NSInvalidArgumentException", "- [NSURLSession dataTaskForRequest: Abschluss:]: Unbekannter Selektor gesendet Instanz 0x7fac89569f00"

Antwort

2

Haben Sie haben versucht, sharedURLSession?

let session = URLSession.shared 

Der Standard initializer von URLSession ist nicht definiert, so kann es etwas seltsam ... und

+0

Ah, ich hatte ein paar ähnliche Varianten ausprobiert, aber als Beispiel und nicht als statische Funktionen. Das funktioniert. Nun, es kompiliert und läuft sowieso. Der Completion-Handle wird jedoch immer noch nicht aufgerufen. :( –

+0

@ VinceO'Sullivan, ich glaube, Ihr Code (mit 'shared' behoben) sollte funktionieren. (Getestet in einem Beispielprojekt mit einer anderen URL.) Überprüfen Sie Ihre URL, Schlüssel, ATS-Einstellungen ... Ich hoffe, Sie können diese lösen Probleme bald .. – OOPer

+0

Interessant. Funktioniert gut, wenn es in einer (Einzelansicht) Anwendung eingebettet ist, scheint aber nicht den Abschlusshandler aufzurufen, wenn es in ein Cocoa Touch Framework eingebettet ist. –

Verwandte Themen