En Objective-C, il est possible de spécifier une classe conforme à un protocole en tant que paramètre de méthode. Par exemple, je pourrais avoir une méthode qui n'autorise qu'un UIViewControllerqui est conforme à UITableViewDataSource:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Je ne trouve pas de moyen de faire cela dans Swift (ce n'est peut-être pas encore possible). Vous pouvez spécifier plusieurs protocoles en utilisant func foo(obj: protocol<P1, P2>), mais comment exigez-vous que l'objet appartienne également à une classe particulière?