class AView : UIView,ProtocolB{ } class BView : UIView,ProtocolB{ } let arr : UIView<ProtocolB> 我的两个子 view 都具备 ProtocolB,我想用一个 UIView 数组去装这两个子 view 的实例。 可以这样写吗?

class AView : UIView,ProtocolB{ } class BView : UIView,ProtocolB{ } let arr : UIView<ProtocolB> 我的两个子 view 都具备 ProtocolB,我想用一个 UIView 数组去装这两个子 view 的实例。 可以这样写吗?
1 finab Apr 20, 2021 或者可以这样? protocol ProtocolB: UIView { } class AView: UIView, ProtocolB { } class BView: UIView, ProtocolB { } let arr : [ProtocolB] arr.first?.backgroundColor = .white |
2 YYYeung Apr 25, 2021 限制协议实现的类型 ```swift protocol ProtocolB where Self: UIView {} class AView: UIView, ProtocolB {} class BView: UIView, ProtocolB {} let arr: [UIView] = [AView(), BView()] ``` |