Leichter Login-Formular-Validator mit Combine
Da ich einen Artikel zur Implementierung eines Validators für das Anmeldeformular in RxSwift geschrieben habe, habe ich mich entschieden, einen für die gleiche Idee mit dem Apple Combine-Framework zu schreiben.
Leichter Login-Formular-Validator mit RxSwiftFast alle mobilen Apps erfordern ein Anmeldeformular und Sie müssen die Benutzeranmeldeinformationen validieren, bevor Sie mit dem Anmeldevorgang fortfahren.
Beginnen wir mit der einfachen Implementierung unseres reaktiven Validators.
Lassen Sie uns zunächst unsere Fehleraufzählung importieren Combineund Foundationdefinieren, um die erwarteten Validierungsfehler zu behandeln:
Zweitens erstellen wir LoginFormValidatoreine Klasse und fügen dann eine private ConstantsAufzählung und eine weitere Aufzählung ValidationTypefür die Validierungstypen hinzu.
validateWir haben eine Funktion mit 2 Parametern erstellt text, typedie den Validierungsprozess innerhalb der Klasse verwaltet und einen Typ zurückgibt, der im Erfolgs- oder Fehlerfall AnyPublisher<Void, ValidationError>zurückgegeben werden soll .VoidValidationError
Der nächste Schritt besteht darin, unsere privaten Funktionen zu erstellen, um die E-Mail und das Passwort zu validieren.
Wir haben unsere privaten Funktionen erstellt validateEmailund ValidatePasswordunseren Code sauber gehalten.
Wir verwenden Future, um den Zustand zu verwalten und das Ergebnis zurückzugeben, und wir haben Deferredhier hinzugefügt, um auf die Implementierung von FutureBlock zu warten.
Schließlich werden wir die Verwendung der LoginFormValidatorKlasse in Echtzeit implementieren.
Jetzt ist unser Validator einsatzbereit und Sie können je nach Ihren App-Anforderungen weitere Validierungsfälle hinzufügen.
Ich habe versucht, es einfach zu halten, um die Idee leicht zu erklären, und man gewöhnt sich daran.
Die Implementierung des Anmeldeformular-Validierers finden Sie RxSwiftin der folgenden Geschichte.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































