一个类是否有可能符合objective-c中的多个协议?

时间:2011-10-02 04:36:57

标签: objective-c class

类是否可以符合objective-c中的多个协议?如果是这样, 声明符合多个协议的类的语法是什么?

3 个答案:

答案 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

用逗号分隔每个协议,并将其放在这些括号内。当您将这些协议添加到接口声明时,您实际上是在说“是的,我将实现这些协议定义的方法”。现在,继续执行这些方法,否则编译器会提醒您没有遵守诺言。