2016-03-23 13 views
0

Ich benutze Alamofire, um eine Download-Anfrage zu senden. Ich handle mit Success und Failure Fällen wie unten gezeigt.Fehlerbehandlung für abgebrochene Anfrage

Alamofire.request { 
    case Success: 
      // Update UI 
    case Failure: 
      // Show Alert message (error!.localizedDescription) 
} 

Alles ist vollkommen in Ordnung.

Wenn ich zurück gehe, in viewWillDisappear, storniere ich jede laufende Anfrage. Das Problem besteht darin, dass das Abbrechen der Anforderung die Fehlermeldung auslöst und die Warnung auslöst, wenn ich nicht auf diesem Bildschirm bin.

Nach meinem Wissen kann ich zwei Maßnahmen ergreifen.

  1. Überprüfen Sie den Zustand, wenn der Fehler erzeugt wird, aufgrund Anfrage
  2. prüfen stornieren, wenn die viewController am Leben ist
  3. Auch kann ich eine Bool Variable in viewWillDisappear gesetzt, was eine einfache Lösung ist

Wie geht man mit der Situation um?

Auch wie Punkt 1 & 2 zu überprüfen?

+0

Was ist das eigentliche Problem? Der Benutzer kann die Warnung nicht sehen oder die Anwendung stürzt ab, wenn die Warnung angezeigt wird. – tgyhlsb

+0

Grundsätzlich möchte ich die Warnung nicht anzeigen, wenn die Anfrage abgebrochen wird. – iOS

+0

Wie können Sie den Alarm anzeigen, wenn die Ansicht nicht mehr angezeigt wird? – tgyhlsb

Antwort

1

Wenn Sie in der Lage sind, den Grund zu erhalten, warum es fehlgeschlagen ist, sollten Sie damit gehen, also: Check the condition if the error is created due to request cancel.

Option 2 ist zerbrechlich, weil Sie sich auf den Lebenszyklus UIViewController verlassen. Option 3 wird Ihre Logik nur durch eine neue Flagge komplizierter machen. Halten Sie es einfach

+0

Wie überprüfe ich, ob der Fehler auf Abbrechen der Anfrage zurückzuführen ist? – iOS

+2

@iOS 'Fehler Domain = NSURLErrorDomain Code = -999" abgebrochen "' – Peres

+0

Vielen Dank! Habe meinen Tag gerettet! – iOS