我刚刚开始使用Swift 2.0开发应用程序,并且在编写一个将POST请求发送到网页并返回网页响应的函数时,我遇到了名为task的变量的问题,该变量应该发送请求。今天早些时候它正在工作,我从字面上改变了一切,以查看是否做错了什么,但我无法弄清楚。
给我带来麻烦的部分是:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
data,response,error in
if(data == nil){
print("No response received")
}
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
if error != nil{
print("Error=\(error)")
return
}
print("response = \(response)")
print("responseString = \(responseString)")
}
由于某些原因,这总是使整个系统崩溃,并在控制台中报告“(lldb)”。
您可以在此处查看“功能”的其余代码(即使它甚至不是一个功能):http://pastebin.com/DfT6LbCc
如果您知道为什么我的代码无法正常工作,请告诉我,我们将不胜感激!
提前致谢!
最佳答案
在几乎所有情况下,您都必须强行打开可选包装,您在做错什么。尝试这个:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
(data,response,error) in
guard let data = data else { print("No response received"); return }
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
if error != nil {
print("Error=\(error)")
return
}
print("response = \(response)")
print("responseString = \(responseString)")
}