У Objective-C як параметр методу можна вказати клас, що відповідає протоколу. Наприклад, я міг би мати метод, який дозволяє лише a, UIViewController
який відповідає UITableViewDataSource
:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Я не можу знайти спосіб зробити це у Свіфті (можливо, це поки не можливо). Ви можете вказати кілька протоколів, використовуючи func foo(obj: protocol<P1, P2>)
, але як вам потрібно, щоб об'єкт також був певного класу?