Em Objective-C, é possível especificar uma classe em conformidade com um protocolo como parâmetro de método. Por exemplo, eu poderia ter um método que permite apenas um UIViewController
que esteja em conformidade com UITableViewDataSource
:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Não consigo encontrar uma maneira de fazer isso no Swift (talvez ainda não seja possível). Você pode especificar vários protocolos usando func foo(obj: protocol<P1, P2>)
, mas como você exige que o objeto também seja de uma determinada classe?