Datenvalidierung in Swift (iOS/macOS): Bibliotheken und Ansätze

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

Datenvalidierung in Swift (iOS/macOS): Bibliotheken, Werkzeuge und praktische Beispiele



Datenvalidierung ist einer der Schlüsselaspekte bei der Entwicklung hochwertiger iOS- und macOS-Apps. Ohne zuverlässige Überprüfung der eingegebenen Daten kann der Benutzer auf Fehler, fehlerhaftes Interface-Verhalten oder sogar Abstürze stoßen. In diesem Artikel betrachten wir die besten Bibliotheken und Ansätze zur Datenvalidierung in Swift und geben konkrete Codebeispiele.



Warum ist Datenvalidierung wichtig?

Validierung ermöglicht:

  • Sicherstellung der Korrektheit eingegebener Daten (E-Mail, Telefon, Passwort).
  • Vermeidung von Fehlern auf der Serverseite.
  • Verbesserung der Benutzererfahrung durch sofortiges Feedback.
  • Erhöhung der Anwendungssicherheit.


Beliebte Bibliotheken für die Validierung in Swift

Heutzutage gibt es mehrere bewährte Bibliotheken, die die Datenvalidierung vereinfachen:

  • Validated – eine leichte Bibliothek mit Unterstützung für Combine und SwiftUI.
  • SwiftValidator – eine der ersten Bibliotheken zur Validierung von Textfeldern.
  • Validator (von Adamwaite) – ein einfaches und flexibles Werkzeug mit vielen integrierten Regeln.
  • Regex – keine Bibliothek, sondern ein eingebauter Mechanismus für reguläre Ausdrücke, der oft zur Validierung verwendet wird.


Beispiel 1: E-Mail-Validierung mit regulärem Ausdruck

Der einfachste Weg ist die Verwendung von NSRegularExpression oder der integrierten Methode range(of:options:).

import Foundation

func isValidEmail(_ email: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex) return emailPredicate.evaluate(with: email)}

// Verwendungprint(isValidEmail("test@example.com")) // trueprint(isValidEmail("invalid-email")) // false


Beispiel 2: Passwortvalidierung (Länge, Vorhandensein von Ziffern und Sonderzeichen)

Oft wird verlangt, dass das Passwort mindestens 8 Zeichen, mindestens eine Ziffer und ein Sonderzeichen enthält.

func isValidPassword(_ password: String) -> Bool {    // Mindestens 8 Zeichen    guard password.count >= 8 else { return false }        // Prüfung auf Vorhandensein einer Ziffer    let digitRegex = ".*[0-9]+.*"    let digitPredicate = NSPredicate(format: "SELF MATCHES %@", digitRegex)    guard digitPredicate.evaluate(with: password) else { return false }        // Prüfung auf Vorhandensein eines Sonderzeichens    let specialCharRegex = ".*[!@#$%^&*()_+\\\\-=\\\\[\\\\]{};':\\"\\\\\\\\|,./<>?]+.*"    let specialPredicate = NSPredicate(format: "SELF MATCHES %@", specialCharRegex)    guard specialPredicate.evaluate(with: password) else { return false }        return true}

print(isValidPassword("Pass123!")) // trueprint(isValidPassword("weak")) // false


Beispiel 3: Verwendung der Bibliothek Validator (Adamwaite)

Die Bibliothek Validator bietet eine praktische Syntax für Regelketten.

import Validator

let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Ungültige E-Mail")let emailResult = "user@domain.com".validate(rule: emailRule)

switch emailResult {case .valid: print("E-Mail ist gültig")case .invalid(let errors): print("Fehler: \\(errors.first?.message ?? "")")}


Beispiel 4: Benutzerdefinierter Validator zur Altersprüfung

Manchmal muss überprüft werden, ob der Benutzer ein bestimmtes Alter überschritten hat.

struct AgeValidator {    static func isValid(age: Int) -> Bool {        return age >= 18 && age <= 120    }}

// Verwendunglet userAge = 25if AgeValidator.isValid(age: userAge) { print(

Empfehlungen