@property (nonatomic) UIVIEwController<uisplitviewdelegate> *vIEwController;
这是否可能在斯威夫特?从文档看,您只需要一个类或一个协议。
在Swift中实际上有两种方法可以实现:>使用空的“幻像”协议。创建一个空协议,使UIVIEwController符合它。这是最“Swift”的方法,它是安全的,它是动态的(不需要在编译时指定一个类)。
protocol _UIVIEwControllerType {}extension UIVIEwController: _UIVIEwControllerType {}class MyClass { weak var vIEwController: protocol<UISplitVIEwControllerDelegate,_UIVIEwControllerType>?}
您也可以为此类型声明一个typealias(只是为了减少代码乱码)。
class MyClass { typealias VIEwControllerType = protocol<UISplitVIEwControllerDelegate,_UIVIEwControllerType> weak var vIEwController: VIEwControllerType?}
>使用通用约束。如fnc12和Konstantin Koval所述。这是安全的,但不允许您在运行时“切换”视图控制器实例。
class MyClass<T: UIVIEwController where T: UISplitVIEwControllerDelegate> { weak var vIEwController: T?}
我希望下一个Swift版本添加一种方法来指定两个约束,而不使用“幻像协议”…
typealias VIEwControllerType = UIVIEwController: UISplitVIEwControllerDelegate // wish总结
以上是内存溢出为你收集整理的在Swift属性中要求协议和类全部内容,希望文章能够帮你解决在Swift属性中要求协议和类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)