canInitWithRequest-Methode in der benutzerdefinierten NSURLProtocol-Klasse wird nicht ausgelöst, wenn Alamofire verwendet wird

8

Ich habe eine benutzerdefinierte NSURLProtocol-Klasse, um Testdaten bereitzustellen, während ich mit Alamofire experimentiere, aber es scheint nicht verwendet zu werden, wenn Anfragen über die Manager-Anfrage-Methode gemacht werden.

Diese Anfrage geht durch und gibt ein Ergebnis zurück, aber canInitWithRequest wird nicht ausgelöst:

%Vor%

Wenn ich eine einfache NSURLConnection verwende, wird die canInitWithRequest-Methode wie erwartet aufgerufen:

%Vor%

Mache ich etwas falsch? Sollte dies mit Alamofire funktionieren?

    
Die
Doug Sjoquist 23.10.2014, 00:48
quelle

1 Antwort

16

Alamofire verwendet intern NSURLSession , was nicht die Protokollklassen berücksichtigt, die mit NSURLProtocol.registerClass() registriert wurden. Stattdessen wird ein NSURLSessionConfiguration -Objekt verwendet, das eine protocolClasses -Eigenschaft hat.

Leider kann diese Konfiguration nicht geändert werden, da die Sitzung immer eine Kopie zurückgibt und die Eigenschaft nicht beschreibbar ist.

Sie können stattdessen Ihre eigene Instanz von Alamofire.Manager erstellen und ihr eine benutzerdefinierte NSURLSessionConfiguration

übergeben %Vor%     
Alfonso 05.12.2014 19:41
quelle

Tags und Links