我想要一種符合我自定義協議的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,這篇文章沒有幫助 –