在Objective-C中,您可以在返回值中指定类名和一组协议。例如,一个UIVcrollConDelegate的UIViewController:
- (UIViewController<UIScrollViewDelegate> *) viewDelegate;
我无法在Swift中找到表达方式。这样的事情失败了,因为UIViewController不是协议:
func viewDelegate() -> protocol<UIViewController, UIScrollViewDelegate>;
答案 0 :(得分:1)
您可以使用约束创建泛型函数。这是否满足您的使用案例?
func viewDelegate<T: UIViewController, UIScrollLViewDelegate>() -> T {
var t = T()
return t;
}