gpt4 book ai didi

ios - Swift:如何调用其中一个参数是 completionHandler 的函数

转载 作者:行者123 更新时间:2023-11-28 10:22:47 29 4
gpt4 key购买 nike

我是 XCode 和 Swift 的新手,在我的 iOS 应用程序中,我编写了一种方法,通过遵循一些答案来对服务器上的 php 文件执行 POST 请求 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"

问题是我不知道如何在我的 View Controller 类上调用该函数。我看到的示例在函数中没有参数,因此在调用它时,它们只是简单地编写闭包。到目前为止,这是我尝试过的:

self.taskService.closeTaskService(self.taskCollection[indexPath.row].id), {(response: NSString) -> () in
println("response = \(response)")})

但是 XCode 显示了很多错误,它建议我添加 ';'在两个或三个地方......请你解释一下如何调用这种函数以及如何编写闭包?

最佳答案

我猜是一个简单的拼写错误。当我用完成处理程序调用函数时,我总是让自动完成完成它的工作,然后双击周围有圆框的东西。这总是给出正确的语法。

self.taskService.closeTaskService(self.taskCollection[indexPath.row].id) { (response) -> () in
print(response)
}

关于ios - Swift:如何调用其中一个参数是 completionHandler 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383387/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com