如何强制类声明协议 - 在协议中?

时间:2012-09-28 13:56:25

标签: objective-c interface

您能否提示如何实现上述目标?

我想创建一个协议A(一个接口声明),它将强制该协议A的所有具体实现(类)声明一个协议B,这些类将通过这些协议B通知其代理人。

我猜我的问题同时也是概念和句法。

2 个答案:

答案 0 :(得分:4)

您可以将协议声明为要强制执行的协议的扩展:

@protocol NewProtocol <OldProtocol>
    - (void)foo;
@end

通过这种方式,您可以确保OldProtocol的所有必需方法都由实现NewProtocol的任何对象实现。当然,可选方法不会被强制执行。

答案 1 :(得分:1)

如果您将协议A定义为从协议B继承,那么您将获得您所追求的效果。

您甚至可以在同一个文件中定义这两种协议。

有关this question中协议继承的更多讨论。