Unsere App hat viele Web-Ansichten und ich habe kürzlich ein NSURLProtocol hinzugefügt, um einige der Anfragen von ihnen abzufangen.
Ich habe festgestellt, dass einige der Web-Ansichten die + [NSURLPRotocol canInitWithRequest:] -Methode mehrere Male aufrufen, wobei es scheint, dass sie genau die gleiche Anfrage ist. Manchmal 6 oder 7 Mal. Ich versuche herauszufinden, warum das passieren könnte.
Hat jemand damit Erfahrung? Ich habe die Werte [NSURL absoluteString] und httpMethod ausgeloggt und sie sind für jede Anfrage gleich. Ich würde erwarten, dass diese Methode nur einmal für eine bestimmte Datei oder Ressource, die von einem Server benötigt wird, nicht mehrmals aufgerufen wird. Und es scheint sich pro Webseite zu unterscheiden.
irgendwelche Ideen?
Ich bin kein Experte, aber AFAIK das ist normales Verhalten. [NSURLPRotocol canInitWithRequest:] kann für dieselbe Anforderung mehrmals aufgerufen werden. Wenn Sie nur einmal pro Anfrage benachrichtigt werden möchten, sollten Sie es in -startLoading-Methode abfangen. Ich fand dieses Tutorial hilfreich, um eine einfache NSURLProtocol-Unterklasse zu erstellen, die genau das tut: Ссылка
Tags und Links ios uiwebview nsurlprotocol