2
我发现这个真棒答案posting data to php为邮政完成处理程序到服务器
唯一的问题是,我不知道如何将数据后恢复。
如何为以下功能制作完成处理程序?
func postToServer(postURL: String, postString: String) {
let request = NSMutableURLRequest(URL: NSURL(string: postURL)!)
request.HTTPMethod = "POST"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
data, response, error in
let responseString = String(data: data!, encoding: NSUTF8StringEncoding)
if responseString != nil {
print("responseString = \(responseString!)")
}
}
task.resume()
}
编辑:也许我没有正确应用它,但建议的重复链接并没有解决我的问题。请有人提供一个这样的例子吗?我一直坚持这样的3周现在。我完全不知道如何从任务中提取数据。我已经阅读了很多关于闭包的文章,但是我只是看不到它们在哪里,甚至是如何相关。当我尝试查找与任务相关的函数时,它只会给出响应...并且如果我在简历后没有键入sleep(3)
,则返回nil。
我看过一堆视频,其中人们拥有与我一样的代码,并且不使用完成处理程序并仍然获取数据...什么给了?
的可能的复制[我怎么能建立与斯威夫特完成处理程序的功能?(http://stackoverflow.com/questions/30401439/how-could- i-create-a-function-with-a-completion-handler-in-swift) –
你正在调用一个异步方法,所以如果你想返回数据,你的函数还必须包含一个完成处理程序作为参数。如果你想同步使用NSURL,那么有一个扩展就是这么做的。 http://stackoverflow.com/questions/26784315/can-i-somehow-do-a-synchronous-http-request-via-nsurlsession-in-swift – Sealos
你能解释一下你究竟在做什么吗? ?你想用'responseString'做什么? –