当我不等于时,我遇到了问题!=无论如何都会显示警报。
当我把它等同时,它什么都不做,但一切看起来都是正确的。我的代码如下,我遇到的问题是密码不匹配然后返回。我知道我在故事板中连接了所有内容,因为当我点击txtpassword时它全部亮起绿色,同样也是确认密码。
import UIKit
class SignupVC: UIViewController {
@IBOutlet var txtUsername: UITextField!
@IBOutlet var txtPassword: UITextField!
@IBOutlet var txtConfirmpassword: UITextField!
@IBOutlet var txtEmail: UITextField!
@IBAction func signupTapped(_ sender: Any) {
_ = txtUsername.text;
_ = txtPassword.text;
_ = txtConfirmpassword.text;
_ = txtEmail.text;
//check empty fields
if((txtPassword.text?.isEmpty)! || (txtConfirmpassword.text?.isEmpty)! || (txtEmail.text?.isEmpty)!)
{
//Display alert
displayMyAlertMessage(userMessage: "All fields are required")
return;
}
//check if passwords match
if(txtPassword == txtConfirmpassword)
{
//Display in alert message
displayMyAlertMessage(userMessage: "Passwords don't match");
return;
}
//store Data
// Display alert message with Confirmation
}
func displayMyAlertMessage(userMessage:String)
{
let myAlert = UIAlertController(title:"Alert", message: userMessage, preferredStyle: UIAlertControllerStyle.alert);
let okAction = UIAlertAction(title:"ok", style: UIAlertActionStyle.default, handler:nil);
myAlert.addAction(okAction);
self.present(myAlert, animated:true, completion:nil);
}
}
答案 0 :(得分:2)
你在说
if(txtPassword == txtConfirmpassword)
这些是文本字段:
@IBOutlet var txtPassword: UITextField!
@IBOutlet var txtConfirmpassword: UITextField!
它们不是同一个文本字段,因此测试永远不会通过。您想知道的是它们是否包含相同的文本 - 并且您没有对此进行测试。那将是:
if txtPassword.text! == txtConfirmpassword.text!