gpt4 book ai didi

ios - 如何在 Uibutton 中快速运行异步函数

转载 作者:行者123 更新时间:2023-11-29 05:29:57 24 4
gpt4 key购买 nike

我希望 getUserToken 函数和 userLogin 函数在下一行 Firebase 身份验证之前运行。让它异步运行

    @IBAction func loginButtonPressed(_ sender: UIButton) {


self.showSpinner(onView: self.view)

guard var phoneNumber = phoneTextField.getRawPhoneNumber() else { return }
phoneNumber = "+234\(phoneNumber)"

guard var userPhoneNumber = phoneTextField.getRawPhoneNumber() else { return }
userPhoneNumber = "234\(userPhoneNumber)"

guard let userName = nameTextField.text else {return}
print(phoneNumber)
getUserAcessToken()
userLogin()

//Validate Required fields are mnot empty
if nameTextField.text == userName {

//Firebase Manipulation
PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationId, error) in
if error == nil {

print(verificationId!)

//UserDefaults Database manipulation for Verification ID
guard let verifyid = verificationId else {return}
self.defaults.set(verifyid, forKey: "verificationId")
self.defaults.synchronize()


self.removeSpinner()
}else {

print("Unable to get secret verification code from Firebase", error?.localizedDescription as Any)

let alert = UIAlertController(title: "Please enter correct email and phone number", message: "\n", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true, completion: nil)
return

}


}

}
let OTPRequestVC = storyboard?.instantiateViewController(withIdentifier: "OTPRequestViewController") as! OTPRequestViewController
OTPRequestVC.userId = userId
OTPRequestVC.userEmailData = userEmail
self.present(OTPRequestVC, animated: true)

}

我希望这两个函数在 firebase 身份验证之前异步运行。

最佳答案

在主线程上运行耗时的函数并不是一个好主意。我的建议是。

  1. getUserAcessToken() 和 userLogin() 函数应该有一个回调。这将使这些函数在不同的线程上运行(我相信这些函数正在进行 api 调用,这是在后台线程中完成的)
  2. 您可以在 getUserAcessToken() 的完成处理程序中调用 userLogin(),然后在 getUserAcessToken() 的完成处理程序中调用 firebaseAuth。

这将确保 UI 不会挂起,直到您进行这些 api 调用,并且用户会知道应用程序中正在发生某些事情并且应用程序不会挂起。

关于ios - 如何在 Uibutton 中快速运行异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57711233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com