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

时间:2016-05-26 15:31:57

标签: ios swift templates completionhandler object-type

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

所以我想,“让我们使用模板”,我试过了。

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

问题: Func A正在打印错误 功能B似乎没问题 Func C似乎没问题

你是否知道如何做到这一点,我不习惯模板? 感谢您的帮助:))

1 个答案:

答案 0 :(得分:1)

我不相信你可以在方法签名中像这样投射完成手柄。您需要在方法体内进行类型转换。例如

  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
    }
  }