Swift - 具有类型和协议的属性

时间:2014-09-02 12:44:26

标签: ios xcode swift

在我的一个Objective-C类中,我有一个UIViewController<UIProfileListHeaderDelegate>类型的属性,我如何在Swift中表示这个?我需要访问UIViewControllerUIProfileListHeaderDelegate中的属性和方法。

谢谢!

1 个答案:

答案 0 :(得分:4)

快速处理此问题的方法是定义一个包含UIViewController相关方法的协议,并让UIProfileListHeaderDelegate继承该协议。

使用您关注的方法定义协议:

protocol ViewControllerSubset {
    var view:UIView!
}

声明UIViewController实现协议,不需要实际执行任何东西,因为它已经存在

extension UIViewController : ViewControllerSubset {}

继承您的协议
protocol UIProfileListHeaderDelegate : ViewControllerSubset

离开你。

如果您不想更改协议的层次结构(或者因为它是系统协议而无法更改),您可以定义包含这两种协议的协议。

protocol EquatableAndComparable : Equatable, Comparable { }