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

Mar*_*rte 3 xcode ios swift

在我的一个 Objective-C 类中,我有一个 type 属性,我UIViewController<UIProfileListHeaderDelegate>将如何在 Swift 中表示它?我需要从UIViewController和访问属性和方法UIProfileListHeaderDelegate

谢谢!

Dav*_*rry 6

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

用你关心的方法定义一个协议:

protocol ViewControllerSubset {
    var view:UIView!
}
Run Code Online (Sandbox Code Playgroud)

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

extension UIViewController : ViewControllerSubset {}
Run Code Online (Sandbox Code Playgroud)

继承你的协议

protocol UIProfileListHeaderDelegate : ViewControllerSubset
Run Code Online (Sandbox Code Playgroud)

你走吧。

如果你不想改变你的协议的层次结构(或者不能因为它是一个系统协议)你可以定义一个包含两个协议的协议)

protocol EquatableAndComparable : Equatable, Comparable { }
Run Code Online (Sandbox Code Playgroud)