使用接口从另一个类获取响应
Posted
技术标签:
【中文标题】使用接口从另一个类获取响应【英文标题】:Use interface to get response from another class 【发布时间】:2016-08-01 06:52:29 【问题描述】:我正在使用 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!)
【问题讨论】:
【参考方案1】:传递给.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
【讨论】:
你能发布一个例子吗?我在登录方法中提出我的请求我 LoginViewController 和请求在 Trans.swift 但是如何在我的 UI 控制器中接收响应? 如果您想将响应 JSON 传递给您的控制器,请将完成处理程序更改为AnyObject -> Void
,然后调用 completion(json)
嗨,tnx。请更改||到 && 在你如果条件。 ;)以上是关于使用接口从另一个类获取响应的主要内容,如果未能解决你的问题,请参考以下文章
使用片段从另一个类获取值时出现 NullPointerException [重复]
java:从另一个类获取私有变量,而不设置getter [重复]