How to return value from Alamofire

前端 未结 5 1966
忘掉有多难
忘掉有多难 2020-11-22 02:41

I am making url calls thru an API that I created using swift as follows:

class API {

  let apiEndPoint = \"endpoint\"
  let apiUrl:String!
  let consumerKey         


        
5条回答
  •  死守一世寂寞
    2020-11-22 03:09

    Following is the complete flow for performing the 'Login Action' using Alamofire and Swift.

    Alamofire v3.3 Swift 2.2 Xcode 7.3

    I have used GCD and MBProgressHUD for my own convenience. Refactor and use as you like :)

    func loginBtnTapped(sender: AnyObject) {
    
        MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    
            let loginInfo : Dictionary = ["email":"abc@g.com","password":"abc123"]
    
            self.loginUser(loginInfo) { responseObject, error in
    
                print("\(responseObject) \n  \(error) ")
    
                // Parsing JSON Below
                let status = Int(responseObject?.objectForKey("status") as! String)
                if status == 1 {
                    // Login Successfull...Move To New VC
                }
                else {
                    print(responseObject?.objectForKey("message"))! as! String)
                }
                return
            }
            dispatch_async(dispatch_get_main_queue()) {
                MBProgressHUD.hideHUDForView(self.view, animated: true)
            }
        }
    
    }
    
    
    func loginUser(parameters:NSDictionary, completionHandler: (NSDictionary?, NSError?) -> ()) {
    
        self.postRequest("http://qa.company.com/project/index.php/user/login",
                         paramDict: parameters as? Dictionary,
                         completionHandler: completionHandler)
    }
    
    func postRequest(urlString: String, paramDict:Dictionary? = nil,
                     completionHandler: (NSDictionary?, NSError?) -> ()) {
    
        Alamofire.request(.POST, urlString, parameters: paramDict)
            .responseJSON { response in
                switch response.result {
                case .Success(let JSON):
                    completionHandler(JSON as? NSDictionary, nil)
                case .Failure(let error):
                    completionHandler(nil, error)
                }
        }
    
    }
    

提交回复
热议问题