【问题标题】:Xcode8 beta 6 - URLSession with completionHandler argument not workingXcode8 beta 6 - 带有 completionHandler 参数的 URLSession 不起作用
【发布时间】:2016-12-23 15:07:05
【问题描述】:

从 beta 5 更改为 beta 6 后,我似乎根本无法在我的代码中使用此方法。

    open func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask

我的代码:

        let task = self.createSession().dataTask(with: request, completionHandler: { (data, response, error) in
            self.handleTaskResult(data: data, response: response, error: error, completionHandler: completionHandlerIncoming)
        })

我知道"Cannot invoke 'dataTask' with an argument list of type '(with: URLRequest, completionHandler: (Data?, URLResponse?, Error?) -> Void)'"。尽管这是 xcode 给我的功能的完成。

如果我再尝试:

        let task = self.createSession().dataTask(with: request) { data, response, error in
            self.handleTaskResult(data: data, response: response, error: error, completionHandler: completionHandlerIncoming)
        }

还是不行。

更新:

我发现我在调用handleTaskResult,错误为NSError?,但现在错误为Error?,修改后编译成功!

【问题讨论】:

  • 我无法一眼就发现错误。它是否使用“空”完成处理程序 { (data, response, error) in } 编译?
  • 是的,它会在为空时编译,所以我想知道里面是否有任何东西,我会尝试更多。
  • 哦,我知道它是什么了!我有一个带有 NSError 的参数,但现在 completionHandler 使用了错误,我是如何在另一行得到错误的......嗯......

标签: swift nsurlsession nsurlrequest xcode8-beta6


【解决方案1】:

我发现我调用了handleTaskResult,错误为NSError?,但现在错误为Error?,修改后编译成功!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2014-09-16
    相关资源
    最近更新 更多