を実装するクラスを指定し、例えば、両方のプロトコルに準拠したタイプを指定することも可能です。2つのプロトコル<code>P1</code>と<code>P2</code>がある特定のプロトコル
typealias P = protocol<P1, P2>
は、タイプを指定するための同様の方法はありますこれはクラスの一種であり、プロトコルにも準拠しています。このような何か(動作しない):
typealias P = UIView: P1
を実装するクラスを指定し、例えば、両方のプロトコルに準拠したタイプを指定することも可能です。2つのプロトコル<code>P1</code>と<code>P2</code>がある特定のプロトコル
typealias P = protocol<P1, P2>
は、タイプを指定するための同様の方法はありますこれはクラスの一種であり、プロトコルにも準拠しています。このような何か(動作しない):
typealias P = UIView: P1
は、残念ながらそれはスウィフト2.2にIMPOSIBLEだとスウィフト3.0で追加されることはありません。 Type
クラスを継承し、プロトコルを実装するタイプのルールを作成するという考え方。
だから、それはあなたがそのような階層構造を持つことになりますし、あなたがこのクラスのいずれかを保存するプロパティを持つことは非常に一般的ではありません。 また、POPパラダイムでは、UIViewから必要なプロパティを与える追加のプロトコルが必要です。
はその後、追加のクラスを作成します:
そして、あなたのタイプはP1Base
P.S.になりますそのため、Obj-cで@property (nonatomic) UIViewController<UITableViewDelegate> *protocolClassProperty;
を作成すると、SwiftのUIViewController!
としてブリッジされます
[このスレッドを読む](http://stackoverflow.com/questions/26401778/in-swift-how-can-i) -declare-a-specific-of-a-specific-type-that-conforms-to-one-o)を使用します。それは最初にスウィフト1時代に掲載されました。この問題は今後のスウィフト3時代にも残っています。スウィフトはまだそのようなタイプを表現する能力を持っていません。 – OOPer
Swiftによって作られたポイントは、あなたのアーキテクチャをうまく設計するならば、それをする必要はないということです。 – Sulthan
@OOPerありがとう、私が達成しようとしていたものと非常に似ている例です。 – MeXx