2016-08-01 43 views
-1

我使用Alamofire lib提出請求,並且我有一個請求類,例如Login,Register,...因此我需要一個接口來注意Alamofire何時接收到響應。我怎樣才能迅速做到這一點?使用接口獲得其他類的響應

這是我Trans.swift

class Trans{ 
func getToken(username: String , password: String){ 
    Alamofire.request(.GET, "http://www.shafadoc.ir/api/DocApp/Token?value=" + username + ":" + password ,parameters:nil) 
     .responseJSON{ response in 
      if let json = response.result.value{ 
      } 
    } 
} 
} 

和我LoginViewController的一部分:

if !login_password.text!.isEmpty || !login_username.text!.isEmpty 
    { 
     var trans : Trans = Trans 
     trans.getToken(login_username.text!, password: login_password.text!) 
    } 

回答

2

傳遞給.responseJSON方法塊是在請求完成時會通知您。您可以在trans.getToken內傳遞迴撥塊,並撥打.responseJSON內的塊。就像這樣:

func getToken(username: String , password: String, completion: Void -> Void){ 
    Alamofire.request(.GET, "http://www.shafadoc.ir/api/DocApp/Token?value=" + username + ":" + password ,parameters:nil) 
     .responseJSON{ response in 
      if let json = response.result.value{ 
      } 
      //... do anything you want with the result, and finally: 
      completion() // <-- call the block 
    } 
} 

在您的視圖控制器:

if !login_password.text!.isEmpty || !login_username.text!.isEmpty 
{ 
    var trans : Trans = Trans 
    trans.getToken(login_username.text!, password: login_password.text!) { 
     //... do your UI stuff 
    } 
} 
+0

你能張貼這樣的例子?我在Login方法中使用我的請求,LoginViewController和請求在Trans.swift –

+0

請先發布你現有的代碼。 – Fujia

+0

但我如何在我的UI控制器中接收響應? –