参数类型“ UITextField”与预期的类型“序列”不符

时间:2018-08-23 14:44:33

标签: ios swift xcode if-statement

我目前正在观看YouTube视频,了解正在使用的应用程序的用户注册。我正在尝试在您输入密码的两个文本字段中进行匹配。这是代码:

@IBAction func signUpButtonTapped(_ sender: Any) {
    print("Registrer ny bruker")

    // Validate required fields are not empty
    if (firstNameTextField.text?.isEmpty)! ||
        (lastNameTextField.text?.isEmpty)! ||
        (emailAdressTextField.text?.isEmpty)! ||
        (passwordTextField.text?.isEmpty)!
    {
        // Display alert message and return
        return
    }

    // Validate password
    if ((passwordTextField.text?.elementsEqual(repeatPasswordTextField!))! != true) {
        return
    }        
}

在“验证密码”上,我得到:

  

参数类型'UITextField'与预期类型不符   “顺序”

我是新来的人,非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow。您遇到的问题是因为您试图查看字符串是否包含UITextField。

我们可以使它更加优雅:

@IBAction func signUpButtonTapped(_ sender: Any) {
    print("Registrer ny bruker")

    guard let firstName = firstNameTextField.text,
      let lastName = lastNameTextField.text,
      let email = emailAdressTextField.text,
      let password = passwordTextField.text,
      let repeatedPassword = repeatPasswordTextField.text else {
          // If any of the values above is empty, just return
          return
      }

    // We avoid force unwrapping with the guard above
    // so the values we test for here are not optional 
    if firstName.isEmpty ||
       lastName.isEmpty ||
       password.isEmpty ||
       repeatedPassword.isEmpty {
        // Display alert message and return
        return
    }

    // Validate password
    if password != repeatedPassword {
        return
    }

}

希望这会有所帮助。