Delegate-委托,顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。
Protocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。
委托(Delegate)是面向对象的回调方法,委托提供了一个单一的对象来接收所有的事件消息。委托对象可以存储、操作、响应、转播相关的消息等等。
协议(Protocol)- 每一个对象的都可以有委托,并且有响应的协议(Protocol)定义对象可以向委托发送的消息。委托实现了协议中感兴趣的事件方法。当一个类实现了协议中的方法,我们说该类遵守协议。
协议(protocol)并不是一个类,而是一个方法列表。因此不能创建协议对象实例(instance),也不能有实例变量,且不能在协议中实现任何方法。相反,需要在遵守协议的委托类中实现这些方法。
一般对协议的命名为委托类+Delegate。
在协议中定义的方法,可以是required 或者 optional。默认情况下,协议方法是 required。如果使用 @optional 指令,则表示为可选方法。
原文地址:http://blog.csdn.net/guying1028/article/details/25506597