如何在alamofire中为登录页面设置'错误'的标识符

问题描述 投票:0回答:1

我正在尝试设置一个错误标识符,以便如果用户输入的信息错误,则用户会在errorLabel中收到错误消息。我试图在{ (response) in中放入“错误”,但这引发了错误。什么是处理此问题的好方法。

AF.request(url, method: .post, parameters: parameters as Parameters, encoding: URLEncoding.default).response { (response) in

            print(response)

           if  error != nil {
               // Couldn't sign in
               self.errorLabel.text = error!.localizedDescription
               self.errorLabel.alpha = 1
           }
           else {

               let tabBarController =
                   self.storyboard?.instantiateViewController(identifier: Constants.Storyboard.TabBarController) as? UITabBarController

               self.view.window?.rootViewController = tabBarController
               self.view.window?.makeKeyAndVisible()
            }
          }
        }
swift alamofire swift5
1个回答
0
投票

由于网络调用在后台线程中运行,如果需要在网络调用中更新UI元素,则应在主线程中进行。以这种方式更改错误部分:

if  error != nil {
    DispatchQueue.main.async {

      // Couldn't sign in
      self.errorLabel.text = error!.localizedDescription
      self.errorLabel.alpha = 1
    }
}


0
投票

您可以使用alamofire中的开关盒来识别错误。

AF.request(url, method: .post, parameters: parameters as Parameters, encoding: 
URLEncoding.default).response { (response) in

        switch response.result {
             case .success:
             //sign in
             let tabBarController =
             self.storyboard?.instantiateViewController(identifier: Constants.Storyboard.TabBarController) as? UITabBarController
             self.view.window?.rootViewController = tabBarController
             self.view.window?.makeKeyAndVisible()

             case .failure(let error):
             // Couldn't sign in
             self.errorLabel.text = error!.localizedDescription
             self.errorLabel.alpha = 1
        }
      }
© www.soinside.com 2019 - 2024. All rights reserved.