4
由於有2個協議P1
和P2
,可以指定符合兩國的協議類型,如:指定一個實現協議的類
typealias P = protocol<P1, P2>
是否有指定類型相似的方式這是一種類,也符合協議,例如像這樣(這是行不通的):
typealias P = UIView: P1
由於有2個協議P1
和P2
,可以指定符合兩國的協議類型,如:指定一個實現協議的類
typealias P = protocol<P1, P2>
是否有指定類型相似的方式這是一種類,也符合協議,例如像這樣(這是行不通的):
typealias P = UIView: P1
不幸的是它在Swift 2.2中是不可能的,並且不會在Swift 3.0中添加。 想要爲繼承某些類並實現協議的類型創建Type
規則。
所以它不是很常見,你會有這樣的層次結構,並要保存這個班的人會擁有財產。 同樣在POP範例中,您應該有額外的協議,可以爲您提供UIView所需的屬性。
而且你喜歡的類型將是P1Base
附:這就是爲什麼如果您在Obj-c中創建@property (nonatomic) UIViewController<UITableViewDelegate> *protocolClassProperty;
,它將被橋接爲斯威夫特中的UIViewController!
請閱讀[This thread](http://stackoverflow.com/questions/26401778/in-swift-how-can-i -declare-A-可變-A-特定型的是,符合對一鄰的)。它在Swift 1時代首次發佈,即將到來的Swift 3時代仍然存在這個問題。 Swift仍然沒有能力表達這樣的類型。 – OOPer
斯威夫特的觀點是,如果你設計的很好,你不需要那樣做。 – Sulthan
@OOPer謝謝,這個例子與我試圖實現的非常相似。 – MeXx