Objective-Cでは、プロトコルに準拠したクラスをメソッドのパラメーターとして指定できます。たとえば、私はにUIViewController
準拠するのみを許可するメソッドを持つことができますUITableViewDataSource
:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Swiftでこれを行う方法を見つけることができません(おそらくまだ可能ではありません)。を使用して複数のプロトコルを指定できますfunc foo(obj: protocol<P1, P2>)
が、オブジェクトが特定のクラスでもあることをどのように要求しますか?