ใน Objective-C สามารถระบุคลาสที่สอดคล้องกับโปรโตคอลเป็นพารามิเตอร์วิธีการได้ ตัวอย่างเช่นฉันสามารถมีวิธีการที่อนุญาตเฉพาะUIViewController
ที่สอดคล้องกับUITableViewDataSource
:
- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
ฉันหาวิธีทำใน Swift ไม่เจอ (อาจจะยังทำไม่ได้) คุณสามารถระบุหลายโปรโตคอลโดยใช้func foo(obj: protocol<P1, P2>)
แต่คุณต้องการให้อ็อบเจ็กต์เป็นคลาสเฉพาะด้วยได้อย่างไร