Swift - CompletionHandler 模板化为函数中的参数 (UsingObjectMapper)

Swift - CompletionHandler templated as parameter in function (UsingObjectMapper)

我正在尝试将 completionHandler 作为参数传递给函数(这里没问题)。 我的问题是我有多种可能的精确类型,我可以在我的 completionHandler 函数中接收这些类型。

所以我想,"Let's use templates",我试过了。

这是我要使用的方案: FuncA(作为 MyType 的 completionHandler?) -> FuncB(..){completionHandler(可映射?)} -> FuncC(sender: T?){performSegueWithIdentifier("segue", sender)}

问题: Func A 给我打印了一个错误 Func B 似乎没问题 Func C 好像没问题

你们知道怎么做吗,我还不习惯模板?? 感谢您的帮助:)

我不相信您可以像在方法签名中那样转换 completionHandler。您将需要在方法体内进行类型转换。例如

  typealias handler = () -> Array<AnyObject>

  funcA(handler)

  func funcA<T>(completion: T?) -> funcB {

    if let completion = completion as? handler {
      let array = completion()
      //do whatever you want here
    }
  }