在Xcode 8.3中使用loadDataFromURL时swift出错

在Xcode 8.3中使用loadDataFromURL时swift出错,swift,loaddata,Swift,Loaddata,我正在测试RayWenderlich的代码,以便从URL下载数据。我让它工作,但我更新到Xcode 8.3,现在突然它不再工作了。我得到的建议是,我的问题已经在下面的链接中得到解决,但是,当添加try!选项或按建议添加do catch,这并不会使错误消失。下面是代码: class func loadDataFromURL(_ url: URL, completion:@escaping (_ data: Data?, _ error: NSError?) -> Void) {

我正在测试RayWenderlich的代码,以便从URL下载数据。我让它工作,但我更新到Xcode 8.3,现在突然它不再工作了。我得到的建议是,我的问题已经在下面的链接中得到解决,但是,当添加try!选项或按建议添加do catch,这并不会使错误消失。下面是代码:

class func loadDataFromURL(_ url: URL, completion:@escaping (_ data: Data?, _ error: NSError?) -> Void) {


            let session = URLSession.shared
                // Use NSURLSession to get data from an NSURL



            let loadDataTask = try! session.dataTask(with: url, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in
              if let responseError = error {
                completion(nil, responseError)
                print("something went wrong 1")

                //activityIndicator.stopAnimating()
              } else if let httpResponse = response as? HTTPURLResponse {
                if httpResponse.statusCode != 200 {
                 let statusError = NSError(domain:"com.raywenderlich", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
                  completion(nil, statusError)
                } else {
                  completion(data, nil)
                    //activityIndicator.stopAnimating()
                }
              }

            } as! (Data?, URLResponse?, Error?) -> Void)  //error is thrown here!!

        loadDataTask.resume()     
}
}

当我运行代码时,我在最后一行得到了错误代码:“线程1:EXEC_BAD_指令(code=EXC_I386_INVOP,subcode=0x0)”

我在尝试异步解析数据时遇到了这个问题,它消除了错误,工作正常。我不确定,但它也可能解决您的问题。

应该是错误,而不是错误,这是有效的。一旦我变为错误,我就可以省去下一步。不知道为什么?不管怎样,它是有效的。请你把这个作为你的正式答案,好让我把它勾掉吗。谢谢