Swift用户创建未检测到UIText长度
正在进行用户创建。非常简单的想法,电子邮件不能是Swift用户创建未检测到UIText长度,swift,if-statement,Swift,If Statement,正在进行用户创建。非常简单的想法,电子邮件不能是nil或空,password和confirm password必须相等,并且password必须超过6个字符。不管出于什么原因,最后一个条件总是通过true。因此,用户可以使用1个字母或数字密码进行注册。为什么会发生这种情况 else if(emailTxt.text != "" && passwordTxt.text == confirmPassTxt.text && passwordTxt.text?.char
nil
或空,password
和confirm password
必须相等,并且password
必须超过6个字符。不管出于什么原因,最后一个条件总是通过true。因此,用户可以使用1个字母或数字密码进行注册。为什么会发生这种情况
else if(emailTxt.text != "" && passwordTxt.text == confirmPassTxt.text && passwordTxt.text?.characters.count > 6){}
另外,有趣的是,我可以很明显地比较这些值,因为这段代码可以获得密码不匹配的结果
else if(emailTxt.text != "" && passwordTxt.text != confirmPassTxt.text)
这将正确返回
true
或false
。所以问题来自于计算字符数,但我现在看不到。简单的错误?我解决这个问题的方法很有趣。因为我从来没有给Swift
一个选项来选择密码是否不超过6个字符,所以它只是假设密码不超过6个字符?不知道为什么,但添加另一个类似的条件是有效的
lse if(emailTxt.text != "" && passwordTxt.text == confirmPassTxt.text && passwordTxt.text?.characters.count < 6 && confirmPassTxt.text?.characters.count < 6){
lse if(emailTxt.text!=“和&passwordTxt.text==confirmPassTxt.text和&passwordTxt.text?.characters.count<6和&confirmPassTxt.text?.characters.count<6){
正如您所见,它基本上是相同的,只是我将
符号更改为,因为它是可选的?从上一个条件中删除问号…已经尝试过了,将?
切换为!
,但仍然不起作用。尽管如此,我的回答仍然可以