我环顾了stackoverflow并试图找到我需要的东西,但找不到它,如果它重复,请指出我正确的方向。
问题是,尝试调用具有参数和闭包的函数时的语法令我感到困惑。发现的所有示例似乎只有一个完成处理程序,并且没有任何参数。
我正在使用Alamofire并希望创建一个包装类来处理一些在整个程序中实现它的冗余。
我拥有的是
class ApiInterface{
func getFromAPI( targetURL: String, completionHandler: (NSDictionary?, NSError?) -> ()) {
Alamofire.request(.GET, targetURL, parameters: params)
.responseJSON { response in
completionHandler(response.result.value as? NSDictionary, response.result.error as? NSError)
}
}
}
我的想法是
ApiInterface().getFromAPI{ targetURL, (response, error) in
}
但是这会导致错误,而XCode错误消息也无济于事。
我认为不可能这样做,所以请帮助我。
答案 0 :(得分:1)
试试这个:
ApiInterface().getFromAPI(targetURL, completionHandler: { (response, error) in
})
答案 1 :(得分:1)
由于闭包是getFromAPI的最后一个参数,你也可以使用尾随闭包语法:
ApiInterface().getFromAPI(targetURL) { (response, error) -> () in
// do stuff
}
它在功能上等同于之前的答案,但有些人发现它更具可读性。