委托代理(delegate)
把某个对象要做的事情委托给别的对象去做,那么别的对象就是这个对象的代理。(好比老板把这件事交给你去做,这个时候你就代替老板去做这件事,你就是老板的代表)
协议(protocol)
只进行方法的声明,不进行实现
代理和协议的共同使用,便可以进行界面间的传值。如果不用代理,继承协议,重写方法,根本么有什么用,还不如自己写方法呢,用协议多此一举,仅仅把方法名提出来。
委托代理(delegate)和协议(protocol)共同使用时:
可以分为三方:1.协议 2.委托方 3.被委托方
1.委托方知道协议中有这个方法,(可能过于繁忙,不想自己去做,毕竟协议中方法还要实现,)
2.这个时候,委托方就声明了一个具有协议中方法的代理
3.通过代理,他就把任务交给了已经实现协议中方法的被委托方(textfield.delegate=self textfield是委托方 self是被委托方)
4.委托方只需要调用协议中的方法,被委托方就会去执行,将最终的结果进行反馈
代理传值DEMO