【发布时间】: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