Swift 2功能强制执行类和协议,无法推断通用参数

时间:2016-04-25 17:21:35

标签: swift swift2

我有以下代码让我从任何视图控制器切换到任何其他视图控制器,参数必须是符合NSViewController协议的Delegatable

当我在第3行调用该函数时,我得到Generic parameter 'C' could not be inferred

func foo() {
    var viewController = CustomViewController()
    showViewForController(&viewController)
}

private func showViewForController<C:NSViewController where C:Delegatable>(inout viewController: C) -> Void {
    currentVC?.removeFromParentViewController()
    currentVC?.view.removeFromSuperview()

    viewController.delegate = self
    addChildViewController(viewController)
    self.view.addSubview(viewController.view)
    currentVC = viewController
}

1 个答案:

答案 0 :(得分:0)

您的CustomViewController不符合Delegatable,这会在尝试将其传递给您的函数时给出编译器错误。但错误信息并非完全有用。