我对 XCode 和 Swift 很陌生,在我的 iOS 应用程序中,我编写了一种方法来执行对服务器上 php 文件的 POST 请求,方法是在 stackoverflow 中遵循一些答案:
func closeTaskService(id_task:Int, completionHandler: (response: NSString) -> ()) {
let request = NSMutableURLRequest(URL: NSURL(string: Settings.webServerGetUserTasks)!)
request.HTTPMethod = "POST"
let postParams = "action=close&id_task=\(id_task)"
request.HTTPBody = postParams.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
println("response = \(response)")
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString!)")
completionHandler(response: responseString!)
}
task.resume()
}
在哪里
webServerGetUserTasks = "http://localhost:8888/excogitoweb/mobile/handleTasks.php"
问题是我不知道如何在我的视图控制器类上调用该函数。我见过的例子在函数中没有参数,所以当它被调用时,他们只是写了闭包。这是我到目前为止所尝试的:
self.taskService.closeTaskService(self.taskCollection[indexPath.row].id), {(response: NSString) -> () in
println("response = \(response)")})
但是 XCode 显示了很多错误,它建议我添加 ';' 在两三个地方......请你解释一下如何调用这种函数以及如何编写闭包?