我想要一种符合我自定义协议的UIView类型。我尝试做这样的,但Xcode中说,这是不正确的声明:带协议问题的swift typealias
typealias ViewThatConformsToProtocol = UIView: MyCustomProtocol
这并不工作过:
typealias ViewThatConformsToProtocol = UIView, MyCustomProtocol
但我不希望使用的子类那。有没有办法做到这一点?
P.S. 采用子类我会这样说:
class ViewThatConformsToProtocol: UIView, MyCustomProtocol {
}
但我不希望使用子类,因为这是对我的设计模式(例如,因为当我只需要知道我查看支持的这个行为调查协议,我不希望这个视图继承ViewThatConformsToProtocol,有时View1可以确认Protocol1和Protocol2,但View2可以遵循Protocol1和Protocol3 - 例如)。在Objective-C中,您可以轻松声明UIView *viewForProtocol = (UIView<MyCustomProtocol> *)view1
,但在SWIFT中似乎不可能,所以我正在寻找散步
我真的不明白你想达到什么目的。你能告诉我们,如果你“为此使用了子类”,你会怎么做? – Sweeper
@Sweeper,我添加了代码和评论。 –
@MaxPevsner,这篇文章没有帮助 –