Swift:符合特定类的属性,同时符合多个协议

Swift:符合特定类的属性,同时符合多个协议,第1张

概述在Objective-C中,可以写出类似的东西: @property(retain) UIView<Protocol1, Protocol2, ...> *myView; 但是我该怎么写这个代码呢? 我已经知道如何使属性符合许多协议,但是通过使用继承不起作用: var myView: ??? protocol<Protocol1, Protocol2, ...> 编辑: 我使用许多UIView子类 在Objective-C中,可以写出类似的东西:
@property(retain) UIVIEw<Protocol1,Protocol2,...> *myVIEw;

但是我该怎么写这个代码呢?

我已经知道如何使属性符合许多协议,但是通过使用继承不起作用:

var myVIEw: ??? protocol<Protocol1,...>

编辑:

我使用许多UIVIEw子类型,如UIImageVIEw,UILabel或其他,我需要使用一些UIVIEw属性加上协议中定义的一些方法。在最坏的情况下,我可以创建一个具有所需属性的UIVIEwProtocol,但是我知道Swift是否可以声明一个类型和一些协议符合的属性/变量。

您可以使用通用类使用 where clause:

A where clause enables you to require that an associated type conforms
to a certain protocol,and/or that certain type parameters and
associated types be the same.

要使用它,使类的属性在通用类中定义为type constraint,以检查您的属性的type parameter是否与您所需的基类和协议匹配。

对于您的具体示例,它可能看起来像这样:

class MyVIEwController<T where T: UIVIEw,T: Protocol1,T: Protocol2>: UIVIEwController {    var myVIEw: T    // ...}
总结

以上是内存溢出为你收集整理的Swift:符合特定类的属性,同时符合多个协议全部内容,希望文章能够帮你解决Swift:符合特定类的属性,同时符合多个协议所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存