অবজেক্টিভ-সি-তে, কোনও পদ্ধতি পরামিতি হিসাবে কোনও প্রোটোকলের সাথে সঙ্গতিপূর্ণ কোনও শ্রেণি নির্দিষ্ট করা সম্ভব। উদাহরণস্বরূপ, আমার কাছে এমন একটি পদ্ধতি থাকতে পারে যা কেবলমাত্র UIViewControllerতার সাথে সঙ্গতিপূর্ণ হয় UITableViewDataSource:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
আমি সুইফটে এটি করার কোনও উপায় খুঁজে পাচ্ছি না (সম্ভবত এটি এখনও সম্ভব নয়)। আপনি একাধিক প্রোটোকল ব্যবহার করে নির্দিষ্ট করতে পারেন func foo(obj: protocol<P1, P2>), তবে কীভাবে আপনার প্রয়োজন হয় যে অবজেক্টটিও একটি নির্দিষ্ট শ্রেণির হয়?