#swift #validation #uitextfield
Вопрос:
Мне нужно выполнить проверку нескольких текстовых полей в форме регистрации. У меня есть валидаторы, которые выдают ошибку, когда текст в текстовом поле недопустим, и у меня есть функция, которая проверяет все текстовое поле
func validateTextFields() {
do {
let email = try emailTextField.validatedText(validationType: ValidatorType.email)
let userName = try userNameTextField.validatedText(validationType: ValidatorType.userName)
let birthday = try birthdayTextField.validatedText(validationType: ValidatorType.birthday)
let password = try oldPasswordTextField.validatedText(validationType: ValidatorType.password)
} catch ValidationError.InvalidEmail {
emailTextField.showErrorLabel(error: "Invalid email")
} catch ValidationError.UserNameIsTooShort {
userNameTextField.showErrorLabel(error: "UserName is too short")
} catch ValidationError.InvalidPassword {
oldPasswordTextField.showErrorLabel(error: "Invalid password")
} catch ValidationError.InvalidBirthday {
birthdayTextField.showErrorLabel(error: "Invalid Birthday")
} catch let error {
#if DEBUG
print(error.localizedDescription)
#endif
}
}
Проблема этой функции в том, что она улавливает одну ошибку, а затем перестает работать, и я вижу только одну метку ошибки в своей форме. Как мне выполнить проверку нескольких текстовых полей в swift. Должен ли я выдавать ошибки проверки или я могу использовать логические значения для проверки. Я хотел сделать это с помощью IBOutletCollection, но я не знаю, как я могу заставить текстовое поле знать, какую проверку оно должно пройти для цикла