在Swift中,如何在闭包中设置函数的返回值?

时间:2016-09-28 10:28:12

标签: ios swift

我现在正在制作一个带有自动完成功能的UITextField,用户在点击一个或多个字母后会获得一个地名和邮政编码列表。

我有一个Autocomplelt(https://github.com/cjcoax/Autocomplete)并且有一个委托功能:

func autoCompleteItemsForSearchTerm(term: String) -> [AutocompletableOption]

我必须向服务器发送带有term的http请求,并等待json响应为return

对于网络连接,我使用了Moya lib及其方法,如: CredentialProvider.request(.Autocomplete(term, 10)) { (result) -> () in }

现在,我的问题是:如何在从服务器获得响应后创建返回值?

谢谢

1 个答案:

答案 0 :(得分:0)

使用完成块声明一个函数:

class func authenticateUser(userName:String?,password:String?,completionHandler: (response:NSDictionary?) -> (Void)) ->Void
{
      completionHandler(response: nil(or)dict)
}

调用函数:

authenticateUser(emailId, password: password, completionHandler: { (response) in
      print(response)
})