私はXCodeとSwiftに非常に慣れていません.iOSアプリでは、スタックオーバーフローでいくつかの回答に従って、サーバー上のphpファイルへのPOSTリクエストを実行するメソッドを作成しました:
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"
問題は、View Controller クラスでその関数を呼び出す方法がわからないことです。私が見た例では、関数にパラメーターがないため、呼び出されたときに単にクロージャーを記述します。これが私が今まで試したことです:
self.taskService.closeTaskService(self.taskCollection[indexPath.row].id), {(response: NSString) -> () in
println("response = \(response)")})
しかし、XCodeには多くのエラーが表示され、「;」を追加するよう提案されています 2 か 3 か所で...この種の関数の呼び出し方法とクロージャの書き方を教えてください。