Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
您能否提示如何实现上述目标?
我想创建一个协议 A(一个接口声明),它将强制该协议 A 的所有具体实现(类)声明一个协议 B,这些类将通过该协议 B 通知他们的代表一些事情。
我想我的问题同时是概念和句法上的。
您可以将您的协议声明为您要强制执行的协议的扩展:
@protocol NewProtocol <OldProtocol> - (void)foo; @end
这样你就可以确定所有必需的方法OldProtocol都由任何实现的对象实现NewProtocol。当然,可选方法不会被强制执行。
OldProtocol
NewProtocol
如果您将协议 A 定义为从协议 B 继承,那么您将获得您想要的效果。
您甚至可以在同一个文件中定义这两种协议。
在这个问题中有更多关于协议继承的讨论。