我有这个代码
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错误消失.
看起来问题出在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提交有关此问题的错误.
| 归档时间: |
|
| 查看次数: |
8903 次 |
| 最近记录: |