6
我在我的一个类中有一个通用方法,我想要一个符合UIViewController
和UIPickerViewDelegate
的通用类型。我怎样才能做到这一点?我想这样做的:符合两种协议的Swift通用类型
func foo<T: UIViewController, UIPickerViewDelegate> (#viewController: T) {}
但是这个代码不“承认”的UIPickerViewDelegate
。我也想用管道|
代替逗号,但这更糟糕,编译器不接受。 是否可以这样做,或者我必须为类和协议做2个参数吗?还是有更好的解决方法?
感谢您的帮助和圣诞快乐:]
非常感谢您!我不知道关键字'where'可以在那里使用。但现在当我通过'.foo(viewController:self)在我的viewController(符合UIPickerViewDelegate)调用这个方法时,我有另一个问题'我得到以下错误:'类型'UIViewController'不符合协议'UIPickerViewDelegate''。有什么问题?再次感谢您的帮助:) – borchero
'类MyViewController:UIViewController,UIPickerViewDelegate {...}'为我工作。你如何声明viewController? – rintaro
我还有一些其他协议:'UITableViewDataSource','UITableViewDelegate','UIPickerViewDataSource' – borchero