ios - NSData 不是 NSData 的子类型吗?

标签 ios xcode swift

我收到错误:

NSData 不是我下面代码中 NSData 的子类型,我做错了什么?

let urlPath = "myurl"
var url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(url, completionHandler: {data, response, error -> Void in
    if error {
        println(error)
    } else {
        println(data)
    }
})

task.resume()

最佳答案

实际的错误信息是'NSData!'不是“NSData”的子类型(注意 NSData 之后的 !)

NSURL(string:) 是一个 failable initializer ,这是 Swift 1.1 (Xcode 6.1) 中的新功能。失败的初始化器返回一个可选的,失败时将为 nil

在使用 url 之前必须检查是否失败:

let urlPath = "myurl"
if let url = NSURL(string: urlPath) {
    let session = NSURLSession.sharedSession()
    let request = NSURLRequest(URL: url)
    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
        if error != nil {
            println(error)
        } else {
            println(data)
        }
    })
    task.resume()
}

关于ios - NSData 不是 NSData 的子类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478710/

相关文章:

ios - 在 Swift 的 UITableView 中搜索时禁用 scrollViewDidScroll 方法

ios - 带有 Google 移动广告 SDK 的 iPhone 应用程序示例

ios - XCode4.2.1 样板代码中的奇怪自动释放

ios - 通过检查状态自动更新 Swift 中的标签

swift - Reactive Cocoa 4 中用于重复网络请求的管道

ios - 无法获取用户列表

ios - 如何在 Swift 中解析更新 CSV 文件值?

ios - 仅从第二次开始获取用户位置

swift - 为什么按下按钮时无法播放声音?

c++ - 使用 Xcode 调试器查看动态分配的数组?