而是写一个大" if"声明,我想知道这个语法是否正常? 如果条件不受尊重,我只使用单词return。
@IBAction func SignUpAction(sender: AnyObject) {
if passwordField1.text != passwordField2.text {
// password dont match
// Pop error
return
}
let user = PFUser()
user.username = emailField.text
user.password = passwordField1.text
user.signUpInBackgroundWithBlock { (suceeded: Bool, error: NSError?) -> Void in
if error == nil {
// Log the user
}else{
// Display an error
}
}
}
或者我需要这样写:
@IBAction func SignUpAction(sender: AnyObject) {
if passwordField1.text == passwordField2.text {
let user = PFUser()
user.username = emailField.text
user.password = passwordField1.text
user.signUpInBackgroundWithBlock { (suceeded: Bool, error: NSError?) -> Void in
if error == nil {
// Log the user
}else{
// Display an error
}
}
}else{
// Error : password dont match
// Pop error
}
}
如果需要尝试许多条件,第一种语法会更清晰,但我不确定编写这样的代码是否合适。感谢
解决方案:(带有无线应答和Apple Doc on"后卫": 第一个声明需要像这样写:
guard passwordField1.text == passwordField2.text else {
print("pop error")
return
}
答案 0 :(得分:3)
实际上,我使用第一种语法,表示为guard
语句:
guard passwordField1.text == passwordField2.text else { return }
这正是guard
的用途:如果条件不满足,请不要再继续了。一系列多个guard
语句(因为必须满足多个条件)是非常标准的。