【发布时间】:2016-06-18 00:22:27
【问题描述】:
如何在 RAC 命令或按钮单击后验证表单?我的视图模型中有这个地方
self.executeLoginRacCommand = RACCommand(enabled: activateButtonSignal, signalBlock: { (any : AnyObject!) -> RACSignal! in
return self.executeLoginAPI()
})
//My question is here, how can I display an alert to my view controller saying may email is invalid.
//MARK: - Execute Login API
private func executeLoginAPI() -> RACSignal {
if self.isEmailValid(self.email) {
return self.signInServices.signInAPIService.signInAPISignal(self.email, password: self.password)
} else {
self.errorMessage = "Please insert a valid email"
return RACSignal.empty()
}
}
//MARK: - Is Email Valid
func isEmailValid(email: String) -> Bool {
let emailRegEx = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(email)
}
我像这样在我的视图控制器中访问它:
self.signInButton.rac_command = self.signInViewModel.executeLoginRacCommand
您能否建议一种验证无效电子邮件并在单击按钮后显示警报的好方法?提前致谢!
【问题讨论】:
-
您自己搜索过“验证电子邮件”吗?
-
是的,我用谷歌搜索了很多,但找不到答案。我试图改变我的代码。不幸的是,它不起作用。
标签: swift mvvm reactive-cocoa