2017-03-23 12 views
0
user.signUpInBackground{ (success: Bool, error:Error?) in 
    if success{ 
     print("signed up") 
     UserDefaults.standard.set(user.username, forKey: "username") 
     UserDefaults.standard.synchronize() 
     user.signUpInBackground {(success: Bool, error: Error?) in 
      if success { 
       print("signed up") 
       AVUser.logInWithUsername(inBackground: user.username!, password: user.password!, block: {(user: AVUser?, error: Error?) in 
        if let user = user { 
         UserDefaults.standard.set(user.username, forKey: "username") 
         UserDefaults.standard.synchronize() 
         let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate 
         appDelegate.login() 
        } 
       }) 
      }else { 
       print(error!.localizedDescription) 
      } 
     } 
    } 
} 

私はInstagramのようなアプリを書いています。これは、ユーザーがサインインボタンをクリックしたときのコードの一部です。私は理解するのが非常に難しいと感じました。 なぜ上記のコードでUserDefaults.standardif successが繰り返されますか? ご協力いただきありがとうございます。サインアップボタンをクリックした機能

+0

あなたが作っているアプリを理解できませんか? – Rikh

+1

user.signUpInBackgroundが2回呼び出されましたが、これは私には正しいとは限りません。 –

答えて

1

このようにしようとしましたが問題は何ですか? :

user.signUpInBackground {(success: Bool, error: Error?) in 
       if success { 
        print("signed up") 
        AVUser.logInWithUsername(inBackground: user.username!, password: user.password!, block: {(user: AVUser?, error: Error?) in 
         if let user = user { 
          UserDefaults.standard.set(user.username, forKey: "username") 
          UserDefaults.standard.synchronize() 
          let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate 
          appDelegate.login() 
         } 
        }) 
       }else { 
        print(error!.localizedDescription) 
       } 
      } 

私はuser.signUpInBackgroundと呼ばれる方法を2回呼びます。だからUserDefaults.standard成功リピート

+0

はい、ありがとうございます。私はばかな間違いをした。私を本当に混乱させるのは、間違ったコードがうまく動作していることです。 – Wilson

+0

あなたは歓迎です。 :) –

関連する問題