swift - Swift 中的多个 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
}
}
该函数的问题是它捕获一个错误然后停止工作,我在我的表单中只看到一个错误标签。我应该如何快速进行多个文本字段验证。我应该抛出验证错误还是可以使用布尔值进行验证。我想用 IBOutletCollection 来做,但我不知道如何让文本字段知道什么样的验证它应该传递给循环
解决方案
推荐阅读
- stored-procedures - 使用 .NET api 的 CosmosDB 酸性事务(提交和回滚)
- html - 如何创建粘性导航
- highcharts - HighCharts node-export-server y-axis labels missing
- neo4j - Neo4jError: Ignored either because of an error or RESET
- typescript - Not able to find the locator in cypress
- javascript - Is it possible to declare Javascript function variables in html?
- scala - Batch operation for select queries
- node.js - 从 Angular 6 迁移到 Angular 7 导致错误 - 无法解析“core-js/es7/reflect”
- regex - Regex for findings names with title
- javascript - 我想用 bxslider 插件创建一个全屏交叉淡入淡出幻灯片