【问题标题】:Swift 2: Throw from closureSwift 2:从关闭中抛出
【发布时间】:2015-09-19 12:37:03
【问题描述】:

我正在使用带有 try-catch 的错误处理将我的代码升级到 Swift 2。我坚持使用闭包(NSURLSession),我不能扔进去。

一般我使用这样的代码:

let request = NSURLRequest()

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
    data, response, error in
    if error != nil {
        throw(ErrorType) // here some errortype enum
    }
}

但我收到错误消息:“无法使用类型为...的参数列表调用 dataTaskWithRequest”。我怎样才能摆脱关闭?

【问题讨论】:

    标签: swift try-catch


    【解决方案1】:

    你不能在闭包中抛出,因为闭包可以在函数已经执行后被调用。

    在您的示例中,闭包在 URLRequest 得到响应后被异步调用,此时调用函数已经执行。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多