是否可以在不同的类中使用不同的方法定义相同的协议?
例: 在classA.h
@protocol ME_DELEGATE <NSObject>
@required
-(void)doThis;
@end
在classB.h中
@protocol ME_DELEGATE <NSObject>
@required
-(void)doThat;
@end
我做得对吗?
答案 0 :(得分:1)
@Siddharthan Asokan
您可以在两个不同的类中使用相同的协议,系统将生成警告&#34;&#39; protocolName&#39;的重复协议定义。被忽略&#34; (使用默认设置)
如果将协议方法声明为@required或@optional,则可以使其正常工作。
此外,如果你想让2个不同的对象作为同一协议的代理,那么就像已经建议的那样,你需要将协议方法定义为@optional ...我已经测试过并且它有效....更棘手的部分是获取对象的引用以正确设置第二个委托
我添加了一个练习,以显示它是如何工作的....两个类中的相同协议,然后是两个不同的对象是同一协议的委托。它还显示了如何在同一个协议中将2个代表连接到同一个类。
https://github.com/eharo2/ProtocolTest
鉴于协议基于消息传递范例,通过适当的对象引用和方法实现,您可以完成您想要的任务。
我希望它有所帮助... e