2017-02-03 6 views
-2

私は配列でログインしたいです。私は2つの配列userNameとユーザーのパスワードを持っています。 私は多くのユーザーがいる場合、私のために問題になる可能性があるので、私はforループを使用する必要があるかどうかを確認できます。これは私のコードです。アレイでログインしていますか?

@IBAction func LoginButton(_ sender: Any) { 


    if _username.text == userNameArr[1] && _password.text == passwordArr[1]{ 

     print("login successful") 
     performSegue(withIdentifier: "login", sender: self) 
    } 

    else if _username.text == userNameArr[0] && _password.text == passwordArr[0]{ 

     print("login successful") 
     performSegue(withIdentifier: "login", sender: self) 
    } 

    else { 
     self.createAlert(titleText: "error!", messageText: "user name or password wrong!") 

     print("login unsuccessful") 
     print(userNameArr[1],passwordArr[1]) 
     print(userNameArr[0],passwordArr[0]) 

    } 

どのようにループやその他の方法でチェックできますか?私は2人以上のユーザーがいる場合(おそらく100)、私はそれをチェックすることはできません。私はあなたの助けを待っています。

答えて

0

ここでは、ループのためにコードの一部をリファクタリングする方法は基本的です。

  1. パターンを検索します。これは常に増減する数値です。この場合、指数は増加:

    else if _username.text == userNameArr[0] && _password.text == passwordArr[0]{ 
    //         ^        ^
    
  2. パターンの開始から、パターンの端部にループforループ

    書き込みAを。このケースでは、0から始まり、配列の数で終了 - 1.

    for i in 0..<userNameArr.count { 
    
    } 
    
  3. は、forループ内のパターンで一つの項目を入れて、パターン内の他のすべてを削除します。

    for i in 0..<userNameArr.count { 
        if _username.text == userNameArr[0] && _password.text == passwordArr[0]{ 
    
         print("login successful") 
         performSegue(withIdentifier: "login", sender: self) 
        } 
    } 
    
  4. iと増え置き換えます。この中のパターンではないのコードを入れて

    for i in 0..<userNameArr.count { 
        if _username.text == userNameArr[i] && _password.text == passwordArr[i]{ 
    
         print("login successful") 
         performSegue(withIdentifier: "login", sender: self) 
        } 
    } 
    
  5. 使用常識を。

    var loggedIn = false 
    for i in 0..<userNameArr.count { 
        if _username.text == userNameArr[i] && _password.text == passwordArr[i]{ 
    
         print("login successful") 
         performSegue(withIdentifier: "login", sender: self) 
         loggedIn = true 
         break 
        } 
    } 
    if !loggedIn { 
        self.createAlert(titleText: "error!", messageText: "user name or password wrong!") 
    
        print("login unsuccessful") 
        print(userNameArr[1],passwordArr[1]) 
        print(userNameArr[0],passwordArr[0]) 
    } 
    
+0

そんなにUに感謝します。それは働いている! :) –

0
for index in userNameArr.count{ 
    if _username.text == userNameArr[i] && _password.text == passwordArr[i]{ 

     print("login successful") 
     performSegue(withIdentifier: "login", sender: self) 

ブレーク }

else { 
     self.createAlert(titleText: "error!", messageText: "user name or password wrong!") 

     print("login unsuccessful") 
     print(userNameArr[i],passwordArr[i]) 

    } 
    } 
関連する問題