Swift上函数中带有闭包和参数的函数的语法

Swift上函数中带有闭包和参数的函数的语法,swift,asynchronous,closures,alamofire,Swift,Asynchronous,Closures,Alamofire,我环顾stackoverflow,试图找到我需要的东西,但找不到,如果是重复的,请给我指出正确的方向 问题是,当试图调用一个包含参数和闭包的函数时,语法让我感到困惑。找到的所有示例似乎都只有一个完成处理程序,没有参数 我正在使用Alamofire,希望创建一个包装器类来处理一些多余的东西,以便在整个程序中实现它 我所拥有的是 class ApiInterface{ func getFromAPI( targetURL: String, completionHandler: (NSDic

我环顾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错误消息没有多大帮助

我认为这是不可能的,所以请帮助我。

试试这个:

ApiInterface().getFromAPI(targetURL, completionHandler: { (response, error) in
})

由于闭包是getFromAPI的最终参数,因此还可以使用尾随闭包语法:

ApiInterface().getFromAPI(targetURL) { (response, error) -> () in
    // do stuff
}
它在功能上等同于前面的答案,但有些人觉得它更具可读性