gpt4 book ai didi

generics - 符合两种协议(protocol)的 Swift 泛型类型

转载 作者:IT王子 更新时间:2023-10-29 05:33:13 24 4
gpt4 key购买 nike

我在我的一个类中有一个泛型方法,我想要一个符合 UIViewControllerUIPickerViewDelegate 的泛型类型。我怎样才能做到这一点?我想到了这样做:

func foo<T: UIViewController, UIPickerViewDelegate> (#viewController: T) {}

但是这段代码不能“识别”UIPickerViewDelegate。我还考虑过使用管道 | 而不是逗号,但这更糟糕,编译器不接受。是否可以这样做,或者我必须为类和协议(protocol)做 2 个参数?或者有更好的解决方法吗?

感谢您的帮助,圣诞快乐:]

最佳答案

您的代码:

func foo<T: UIViewController, UIPickerViewDelegate> (#viewController: T) {}

声明2泛型参数:

  • TUIViewController。并用作viewController参数类型。
  • UIPickerViewDelegateAny。而且它没有被使用。

相反,您应该使用 "Where Clause" ,比如:

func foo<T: UIViewController where T:UIPickerViewDelegate> (#viewController: T) {}

关于generics - 符合两种协议(protocol)的 Swift 泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27633872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com