Ich lese viele Artikel über die saubere iOS-Architektur VIPER, ich verstehe die wichtigsten puropose: die Trennung von Bedenken.iOS VIPER: Wohin mit dem Formular Validierungscode?
Ich verwende es derzeit für mein Projekt. Ich habe Module, jeweils aufgeteilt nach Views, Interactors, Presenter, Entities und Routers (mit Storyboard).
Ich habe ein Modul: Adresse und ein Submodul Add für die Adresse hinzufügen Seite.
Also, ich habe meine Protokollansicht von meinem UIViewController implementiert. Der View-Controller enthält alle schwachen IBOutlet-Beschriftungen und Textfelder (für das neue Adressformular).
Das Adressformular enthält einige Felder wie:
- Person Vorname und Nachname
- Postleitzahl
- Land
- Zustand
- Telefon
- etc ..
In meinem Fall verwendet der Präsentator Benutzerinteraktionen nur auf den Interactor, der den API-Aufruf ausführt.
Aber vor dem Ausführen des API-Aufrufs möchte ich das Formular vorab validieren, um unnötige Netzwerkressourcen zu vermeiden.
muss ich zum Beispiel überprüfen:
- den Inhalt von Land und sagen zu der Ansicht, dass Feld ist erforderlich, wenn leer ...
- das Format der E-Mail und sagen Sie zu der Ansicht, dass Feld ungültig ...
Meine Frage ist, wo kann ich meinen Formularvalidierungscode eingeben?
Welche VIPER-Komponente sollte diesen Job ausfüllen?
Vielen Dank im Voraus!
Kleine Randnotiz: Ich denke, der Autor der clean-swift.com Seite nicht vollständig die Grundidee von sauberem Code zu verstehen. Aus meiner Sicht ist es keine gute Idee, eine zirkuläre Abhängigkeit einzuführen (VC-> I-> P-> VC). Der View-Controller sollte dumm sein und nur seinen Presenter kennen. Also würde ich vorschlagen, es eher (VC-> P-> I) zu haben - mit Rückreferenzen, die als Delegierte implementiert werden. – orschaef