当 if 语句 returns 为真时停止执行函数
Stop a executing a function when if statement returns true
我有一个允许用户保存个人资料的应用程序。为了让他们能够注册,我想检查一下他们是否同意应用程序的条款和条件。我遇到的问题是如果用户不同意他们,他们将看到一个 alertController 告诉他们同意。但是,该应用程序仍会继续执行剩余的代码。
func checkIfChecked() {
if self.checkbox.imageView.isHidden == true {
let alert = UIAlertController(title: "Hold up!",message:" You must agree to our Community Guidelines before you can sign up.", preferredStyle: UIAlertController.Style.alert)
let continueButton = UIAlertAction(title: "Got it!", style: .default, handler: {(_ action: UIAlertAction) -> Void in
})
continueButton.setValue(GREEN_Theme, forKey: "titleTextColor")
alert.addAction(continueButton)
self.present(alert, animated: true, completion: nil)
}
if self.checkbox2.imageView.isHidden == true {
let alert = UIAlertController(title: "Hold up!",message:" You must agree to our Terms & Conditions before you can sign up.", preferredStyle: UIAlertController.Style.alert)
let continueButton = UIAlertAction(title: "Got it!", style: .default, handler: {(_ action: UIAlertAction) -> Void in
})
continueButton.setValue(GREEN_Theme, forKey: "titleTextColor")
alert.addAction(continueButton)
self.present(alert, animated: true, completion: nil)
}
}
@objc func handleRegister() {
checkIfChecked()
let hud = JGProgressHUD(style: .dark)
hud.textLabel.text = "Registering!"
hud.show(in: view)
guard let email = emailTextField.text, let password = passwordTextField.text, let name = nameTextField.text, let phonenumber = phonenumberTextField.text else {
print("Error")
return
剩下的代码....
}
}
如果选中复选框,则没有问题。但是如果他们没有被选中,那么用户信息仍然会在没有他们登录的情况下保存到数据库中。所以我试图在只有没有选中框的情况下调用 checkIfChecked 之后停止 handleRegister 的执行。
不确定这是否是解决我遇到的问题的最安全方法,但我在 handleRegister 内部所做的解决问题的方法,我添加了
checkIfChecked()
这必须在 checkIfChecked 之后,这样 alertControllers 才能显示。
if self.checkbox.imageView.isHidden == true {
return
} else if self.checkbox2.imageView.isHidden == true {
return
}
如果这些行为真,它会停止代码的执行。
我有一个允许用户保存个人资料的应用程序。为了让他们能够注册,我想检查一下他们是否同意应用程序的条款和条件。我遇到的问题是如果用户不同意他们,他们将看到一个 alertController 告诉他们同意。但是,该应用程序仍会继续执行剩余的代码。
func checkIfChecked() {
if self.checkbox.imageView.isHidden == true {
let alert = UIAlertController(title: "Hold up!",message:" You must agree to our Community Guidelines before you can sign up.", preferredStyle: UIAlertController.Style.alert)
let continueButton = UIAlertAction(title: "Got it!", style: .default, handler: {(_ action: UIAlertAction) -> Void in
})
continueButton.setValue(GREEN_Theme, forKey: "titleTextColor")
alert.addAction(continueButton)
self.present(alert, animated: true, completion: nil)
}
if self.checkbox2.imageView.isHidden == true {
let alert = UIAlertController(title: "Hold up!",message:" You must agree to our Terms & Conditions before you can sign up.", preferredStyle: UIAlertController.Style.alert)
let continueButton = UIAlertAction(title: "Got it!", style: .default, handler: {(_ action: UIAlertAction) -> Void in
})
continueButton.setValue(GREEN_Theme, forKey: "titleTextColor")
alert.addAction(continueButton)
self.present(alert, animated: true, completion: nil)
}
}
@objc func handleRegister() {
checkIfChecked()
let hud = JGProgressHUD(style: .dark)
hud.textLabel.text = "Registering!"
hud.show(in: view)
guard let email = emailTextField.text, let password = passwordTextField.text, let name = nameTextField.text, let phonenumber = phonenumberTextField.text else {
print("Error")
return
剩下的代码.... }
}
如果选中复选框,则没有问题。但是如果他们没有被选中,那么用户信息仍然会在没有他们登录的情况下保存到数据库中。所以我试图在只有没有选中框的情况下调用 checkIfChecked 之后停止 handleRegister 的执行。
不确定这是否是解决我遇到的问题的最安全方法,但我在 handleRegister 内部所做的解决问题的方法,我添加了
checkIfChecked()
这必须在 checkIfChecked 之后,这样 alertControllers 才能显示。
if self.checkbox.imageView.isHidden == true {
return
} else if self.checkbox2.imageView.isHidden == true {
return
}
如果这些行为真,它会停止代码的执行。