试图在Swift 2上使用NSJSONSerialization.JSONObjectWithData

Spa*_*Dog 6 swift swift2

我有这个代码

let path : String = "http://apple.com"
let lookupURL : NSURL = NSURL(string:path)!
let session = NSURLSession.sharedSession()

let task = session.dataTaskWithURL(lookupURL, completionHandler: {(data, reponse, error) in

  let jsonResults : AnyObject

  do {
    jsonResults = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
    // success ...
  } catch let error as NSError {
    // failure
    print("Fetch failed: \(error.localizedDescription)")
  }

 // do something

})

task.resume()
Run Code Online (Sandbox Code Playgroud)

但它失败了就let task行了:

从类型(__.__.__)抛出函数的无效转换抛出到 非投掷函数类型(NSData?,NSURLResponse?,NSError?) - > Void

怎么了?这是Xcode 7 beta 4,iOS 9和Swift 2.


编辑:

这些问题似乎与这些问题有关

  do {
    jsonResults = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
    // success ...
  } catch let error as NSError {
    // failure
    print("Fetch failed: \(error.localizedDescription)")
  }
Run Code Online (Sandbox Code Playgroud)

我删除这些行,let task错误消失.

Mic*_*lum 9

看起来问题出在catch声明中.以下代码不会产生您所描述的错误.

do {
    jsonResults = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
    // success ...
} catch {
    // failure
    print("Fetch failed: \((error as NSError).localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)

我确实意识到您提供的代码应该是正确的,因此您应该考虑向Apple提交有关此问题的错误.