应用突然崩溃加载 url

App sudden crash loading url

我有以下函数来加载数据。直到几天前,该功能都运行良好。该应用程序在尝试加载任何 url 时崩溃,请参阅下面的代码和屏幕截图。编码 ios/swift 一年只有几天,很难找出问题所在...

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 = session.dataTask(with: url, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in
  if let responseError = error {
    completion(nil, responseError)
  } else if let httpResponse = response as? HTTPURLResponse {
    if httpResponse.statusCode != 200 {
      let statusError = NSError(domain:"com.xyz", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
      completion(nil, statusError)
    } else {
      completion(data, nil)
    }
  }
} as! (Data?, URLResponse?, Error?) -> Void)

loadDataTask.resume()
}

使用下面的代码和最新的 Swift 3.0 语法它适用于 Xcode 8.2:-

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 = session.dataTask(with: url) { (data, response, error) in
            if let responseError = error {
                completion(nil, responseError as NSError?)
            } else if let httpResponse = response as? HTTPURLResponse {
                if httpResponse.statusCode != 200 {
                    let statusError = NSError(domain:"com.xyz", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
                    completion(nil, statusError)
                } else {
                    completion(data, nil)
                }
            }
        }
        loadDataTask.resume()

    }