泛型 – 符合两种协议的Swift泛型类型

泛型 – 符合两种协议的Swift泛型类型,第1张

概述我在我的一个类中有一个泛型方法,我想要一个符合UIViewController和UIPickerViewDelegate的泛型类型.我怎样才能做到这一点?我想过这样做: func foo<T: UIViewController, UIPickerViewDelegate> (#viewController: T) {} 但是这段代码并没有“识别”UIPickerViewDelegate.我也想过用 我在我的一个类中有一个泛型方法,我想要一个符合UIVIEwController和UIPickerVIEwDelegate的泛型类型.我怎样才能做到这一点?我想过这样做:
func foo<T: UIVIEwController,UIPickerVIEwDelegate> (#vIEwController: T) {}

但是这段代码并没有“识别”UIPickerVIEwDelegate.我也想过用管道而不是逗号,但更糟糕的是,编译器不接受.
是可以这样做还是我必须为类和协议做2个参数?或者有更好的解决方法吗?

谢谢你的帮助和圣诞快乐:]

你的代码:
func foo<T: UIVIEwController,UIPickerVIEwDelegate> (#vIEwController: T) {}

声明2个泛型参数:

> T是UIVIEwController.它用作vIEwController参数类型.
> UIPickerVIEwDelegate是Any.并没有使用它.

相反,你应该使用“Where Clause”,如:

func foo<T: UIVIEwController where T:UIPickerVIEwDelegate> (#vIEwController: T) {}
总结

以上是内存溢出为你收集整理的泛型 – 符合两种协议的Swift泛型类型全部内容,希望文章能够帮你解决泛型 – 符合两种协议的Swift泛型类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1032542.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存