swift - dataTask 中没有更多上下文,表达式类型不明确

标签 swift

我正在将我的代码转换为 swift 3,但在以下代码中出现“没有更多上下文的情况下表达式类型不明确”错误。

open class func performGetRequest(_ targetURL: URL!, completion: @escaping (_ data: Data?, _ HTTPStatusCode: Int, _ error: NSError?) -> Void) {

    var request = URLRequest(url: targetURL)
    request.httpMethod = "GET"
    let sessionConfiguration = URLSessionConfiguration.default
    let session = URLSession(configuration: sessionConfiguration)
    let task = session.dataTask(with: request) { (data, response, error) in
        DispatchQueue.main.async(execute: {
            completion(data, response.statusCode,error)
        })
    }
    task.resume() 
}

最佳答案

编译器需要Error 而不是NSError

进一步在 Swift 3 中省略了完成处理程序中的参数标签,如果您实际上是指非可选参数,则不要传递 IUO* 参数:

open class func performGetRequest(_ targetURL: URL, completion: @escaping (Data?, Int, Error?) -> Void) {

最后,在这种情况下你不需要 URLRequest,GET 是默认的,所以只需将 URL 传递给 dataTask 并删除与请求相关的两行.

(*) 隐式解包可选

关于swift - dataTask 中没有更多上下文,表达式类型不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43207603/

相关文章:

ios - 即使我设置了 TableView.separatorStyle = .none,UITableViewCell 之间的细线间隙也是可见的

swift - UISlider 自定义拇指形状

ios - 如何使 SwrevealViewController 的 viewDidLoad 仅调用一次

ios - 通过导航 Controller 使用自定义动画转换到 SecondViewController 中的非事件 View 后

swift - 没有这样的模块 PDKClient with Cocoapods

swift - 为什么会出现 "Static member ' .. .' cannot be used on instance of type ' .. .'"错误?

ios - 无法更改 View 中绘制的圆的颜色

swift - 在范围内使用未解析的标识符

ios swift 在静默通知后创建本地通知

ios - 在字符串的 5 个字符之前截断 UILabel 文本