2017-12-18 1 views
1

Ich habe diesen Code seit ungefähr 12 Monaten arbeiten lassen und habe gerade versucht, einige nicht verwandte Änderungen heute vorzunehmen und Xcode 9 zum ersten Mal mit dieser MacOS-Anwendung zu erstellen. Der Code funktioniert, wenn er von der Hauptansichts-Controller-Init aufgerufen wird, aber jedes Mal mit einer Zeitüberschreitung fehlschlägt. Der Server protokolliert jedoch nie den zweiten und die folgenden Aufrufe. Ich habe überprüft, dass der letzte Xcode 8-Build noch funktioniert, also nehme ich an, dass es einige Änderungen am Threading gibt.NSURLSession Thread Änderungen in Mac OS 10.12?

Ich denke, die Operationen sind absichtlich auf Hintergrund Threads platziert, aber ich bin ratlos, wie man das weiterbringt. An verschiedenen Punkten auf den Hauptfaden zu setzen, hat keine Wirkung.

Ich weiß nicht, ob es verwandt ist, aber ich benutze ein benutzerdefiniertes NSURLProtocol zum Einfügen eines Autorisierungsheaders und ein weiterer Unterschied ist, dass das Protokoll für jeden Aufruf mehrmals aufgerufen wird, wenn es einmal aufgerufen wurde.

Antwort

0

Es war so einfach wie Ersetzen Sie die Zeile:

NSURLSession *session = [NSURLSession sharedSession]; 

mit:

NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:config]; 
Verwandte Themen