使用interface从另一个类获取响应

时间:2016-08-01 06:52:29

标签: ios swift request alamofire

我正在向Alamofire lib发出请求,我有一个类用于登录,注册等请求,所以我需要一个界面来注意Alamofire收到回复的时间。我怎么能在swift中做到这一点?

这是我的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!)
    }

1 个答案:

答案 0 :(得分: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
    }
}