Di Objective-C, dimungkinkan untuk menentukan kelas yang sesuai dengan protokol sebagai parameter metode. Misalnya, saya dapat memiliki metode yang hanya mengizinkan a UIViewControlleryang sesuai dengan UITableViewDataSource:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Saya tidak dapat menemukan cara untuk melakukan ini di Swift (mungkin belum memungkinkan). Anda dapat menentukan beberapa protokol menggunakan func foo(obj: protocol<P1, P2>), tetapi bagaimana Anda meminta objek dari kelas tertentu juga?