2016-08-01 8 views
-1

私はAlamofireのライブラリでリクエストしています。ログイン、登録などのリクエストのためのクラスがあります。そのため、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コントローラで応答を受け取ることができますか? –

関連する問題