我刚刚开始使用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)")
}

10-07 19:17
查看更多