2016-07-26 23 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){ 

正如你可以看到它在本質上是相同的,除了我改變了>符號<。現在工作完全正常