Datenvalidierung in Swift: Die Bibliothek Validator

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Datenvalidierung in Swift und warum wird sie benötigt?

Datenvalidierung ist der Prozess der Überprüfung von Eingabedaten auf Übereinstimmung mit festgelegten Regeln. In der iOS/macOS-Entwicklung ist sie von entscheidender Bedeutung: von der Überprüfung von E-Mail und Passwort in einem Registrierungsformular bis zur Validierung einer JSON-Antwort vom Server. Die integrierten Mittel von Foundation (NSPredicate, reguläre Ausdrücke) sind oft umständlich und für die Wiederverwendung unpraktisch. Validator ist eine leichtgewichtige Bibliothek für Swift, die es ermöglicht, Validierungsregeln deklarativ mit einer verkettbaren Syntax (chainable syntax) zu beschreiben und an jeder Stelle im Projekt zu verwenden.

Wie installiert man die Bibliothek Validator

Validator ist über den Swift Package Manager (SPM) verfügbar. Fügen Sie es in Package.swift oder über Xcode hinzu: File → Add Packages → geben Sie die Repository-URL ein:

https://github.com/adamwaite/Validator

Oder über CocoaPods, falls Sie es verwenden:

pod 'Validator'

Hauptfunktionen der Bibliothek

  • Integrierte Regeln: E-Mail, URL, String, Zahl, Länge, reguläre Ausdrücke und viele andere.
  • Benutzerdefinierte Regeln: Sie können jede beliebige Prüfung erstellen, indem Sie das Protokoll ValidationRule implementieren.
  • Validierung von Sammlungen: Überprüfung von Arrays, Dictionaries und optionalen Werten.
  • Lesbare Fehlermeldungen: Gibt lokalisierte Fehlermeldungen zurück.
  • Arbeit mit UIKit/SwiftUI: Textfelder können direkt validiert werden.

Swift-Codebeispiel

import Validator

// Regeln erstellenlet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard)let passwordRule = ValidationRuleLength(min: 8, max: 32)

// String validierenlet email = "test@example.com"let result = email.validate(rule: emailRule)

switch result {case .valid: print("Email ist korrekt")case .invalid(let errors): print("Fehler: \\(errors)")}

// Validierung mit mehreren Regelnlet username = "user123"let usernameRules = ValidationRuleSet<String>()usernameRules.add(rule: ValidationRuleLength(min: 3))usernameRules.add(rule: ValidationRulePattern(pattern: "^[a-zA-Z0-9_]+$"))

let usernameResult = username.validate(rules: usernameRules)if case .invalid(let errors) = usernameResult { print("Validierungsfehler für den Benutzernamen: \\(errors)")}

// Beispiel für UITextField (UIKit)let textField = UITextField()textField.text = "invalid email"textField.validate(rule: emailRule) { result in switch result { case .valid: textField.layer.borderColor = UIColor.green.cgColor case .invalid(let errors): textField.layer.borderColor = UIColor.red.cgColor print(errors.first?.message ?? "") }}

Wann sollte man Validator verwenden

Die Bibliothek eignet sich ideal für:

  • Eingabeformulare (Registrierung, Login, Profil).
  • Validierung von Daten vor dem Senden an den Server.
  • Echtzeit-Überprüfung von Benutzereingaben.
  • Parsen und Validieren von JSON/API-Antworten.
  • Alle Szenarien, die eine mehrfach wiederverwendbare Datenprüfung erfordern.

Validator reduziert Boilerplate-Code erheblich, macht die Validierung lesbar und testbar. Es ist ein Must-have-Werkzeug für jeden Swift-Entwickler, der mit Benutzereingaben oder externen Daten arbeitet.

Empfehlungen