2016-07-26 22 views
2

正在处理用户创建。非常简单的想法,电子邮件不能是nil或空,passwordconfirm password必须相等,而password必须超过6个字符。无论出于何种原因,这最后一个条件总是传递正确。因此,用户可以使用1个字母或数字密码进行注册。为什么会发生这种情况?Swift用户创建未检测到UIText长度

else if(emailTxt.text != "" && passwordTxt.text == confirmPassTxt.text && passwordTxt.text?.characters.count > 6){} 

此外,一些有趣的事情,我可以明显比较值,因为这个代码获得一个密码不匹配的工作完全正常。

else if(emailTxt.text != "" && passwordTxt.text != confirmPassTxt.text) 

这将truefalse正确返回。所以问题来自对角色的计数,但我现在看不到它。简单的错误? 谢谢大家!

+0

因为它是可选的?从最后一个条件中删除questionmark ... –

+0

已经尝试过,将'?'切换到'!'但它仍然不起作用。 – Ethan

+0

尽管如此,我的答案仍然正常 – Ethan

回答

0

我解决了这个有趣的方法。因为我从未给出Swift的选项来选择密码是否不超过6个字符,它只是假设它是?不知道为什么,但添加像这样的另一个条件工作。

lse if(emailTxt.text != "" && passwordTxt.text == confirmPassTxt.text && passwordTxt.text?.characters.count < 6 && confirmPassTxt.text?.characters.count < 6){ 

正如你可以看到它在本质上是相同的,除了我改变了>符号<。现在工作完全正常