【发布时间】:2015-09-03 18:55:13
【问题描述】:
我对 XCode 和 Swift 很陌生,在我的 iOS 应用程序中,我编写了一个方法来执行对服务器上 php 文件的 POST 请求,方法是遵循 stackoverflow 中的一些答案 here:
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 显示很多错误,它建议我添加 ';'在两三个地方...请您解释一下如何调用这种函数以及如何编写闭包?
【问题讨论】:
标签: ios xcode swift closures completionhandler