В Objective-C можно указать класс, соответствующий протоколу, как параметр метода. Например, у меня может быть метод, который позволяет только UIViewController
соответствовать UITableViewDataSource
:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Я не могу найти способ сделать это в Swift (возможно, это пока невозможно). Вы можете указать несколько протоколов с помощью func foo(obj: protocol<P1, P2>)
, но как вы требуете, чтобы объект был также и определенного класса?