类是否可以符合objective-c中的多个协议?如果是这样, 声明符合多个协议的类的语法是什么?
答案 0 :(得分:7)
@interface MyClass : NSObject <Protocol1, Protocol2, Protocol3>
@end
答案 1 :(得分:3)
是;只需在每个协议之间加一个逗号。
答案 2 :(得分:3)
是的,类可以符合多种协议。语法如下:
@interface MyClass : NSObject <Protocol1, Protocol2, Protocol3>
//...Some code here...
@end
Objective-C中的协议本质上是一个方法列表,必须实现这些方法才能使对象或类符合该协议。符合多个协议的类的一个常见示例是UITableViewController,它充当UITableViewDataSource和UITableViewDelegate。
对于UITableViewController示例,它可能如下所示:
@interface MyTableViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>
//...Some code here...
@end
用逗号分隔每个协议,并将其放在这些括号内。当您将这些协议添加到接口声明时,您实际上是在说“是的,我将实现这些协议定义的方法”。现在,继续执行这些方法,否则编译器会提醒您没有遵守诺言。