我认为,除了名称之外,协议更适合作为"接口"课间。他们完成@interface
所做的所有事情(暴露属性和方法),并且在不同的类之上可以实现相同的协议,这与Objective-C的动态特性相结合是一个巨大的优势。那么为什么我们仍然使用@interface
s?与协议相比,它们带来了哪些优势? (我希望从这个问题中得到更多的信息而不是"他们明确表达了他们所做的事情"或者"关闭而不是建设性的"。)
答案 0 :(得分:0)
委托协议需要定义为
@protocol
//methods
@end
它可以放在任何.h类中,只要你打算使用它就需要导入它。
协议不像java接口,协议是允许两个类一起工作的适配器。基本上它说,如果你希望A类向你发送有关其状态和动作的消息,这些是它将调用它必须实现的委托的方法。它不像一个接口,因为一个接口说如果你想要继承这个类,你必须实现这些方法,协议说如果你想与这个类进行交互,你必须实现这些方法,所以它有些不同。