我尝试了很多不同的东西,但我不擅长仿制药。
如何调用具有变量的函数,该变量既需要像UIViewController
这样的实体类型,又要符合NavBarResponder
之类的协议?
谢谢!
weak var lastNavBarResponder: UIViewController?
func reloadExtendedNavBar() {
self.updateState()
self.updateStatusBadges()
if let vc = self.lastNavBarResponder {
self.setup(viewController: vc) // Error: Generic parameter T cannot be inferred
}
}
func setup<T: UIViewController>(viewController: T) where T: NavBarResponder {
...
答案 0 :(得分:0)
我怀疑错误是因为UIViewController
自然不符合NavBarResponder
,因此编译器无法保证lastNavBarResponder
符合{{1}的要求}}
尝试将setup
更改为符合lastNavBarResponder
协议的UIViewController
类型。
这是一个独立的示例,展示了如何实现这一点。
NavBarResponder