1

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

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

我想我的问题同时是概念和句法上的。

4

2 回答 2

4

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

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

这样你就可以确定所有必需的方法OldProtocol都由任何实现的对象实现NewProtocol。当然,可选方法不会被强制执行。

于 2012-09-28T14:06:45.603 回答
1

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

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

在这个问题中有更多关于协议继承的讨论。

于 2012-09-28T14:03:27.697 回答