Hallo, ich storniere eine Anfrage, aber nach dem Aufruf von .cancel() wird der Callback ohne Fehler und mit einer gültigen Antwort aufgerufen. Ich rufe den Abbruch in der viewDidDisappear-Methode auf, weil Benutzer den Bildschirm verlassen können, während sie weiter laden.
Das kann durchaus passieren. Die NSURLSession
APIs sind alle asynchroner Natur. Der Aufruf cancel
stellt nicht sicher, dass die Anforderung tatsächlich abgebrochen wird, bevor sie abgeschlossen werden kann.
Prost. 🍻
Aber es sollte das Aufrufen des Rückrufs verhindern ... Was ist die Problemumgehung? Ich möchte den Bildschirm während der Anfrage nicht blockieren. Wenn Benutzer zurückgehen möchten, sollten sie diese Aktion ausführen können.
Dasselbe Problem mit response.response = nil und kann nicht unterscheiden, ob nil von Cancel oder Timeout ist. Anfrage wurde nicht abgeschlossen und Abbrechen ruft immer noch Rückruf an.
Hilfreichster Kommentar
Dasselbe Problem mit response.response = nil und kann nicht unterscheiden, ob nil von Cancel oder Timeout ist. Anfrage wurde nicht abgeschlossen und Abbrechen ruft immer noch Rückruf an.