协议是两个类的交互, 传值的常用手段之一, 是一对一的操作, 无非是一个类想要做某些事情而做不到, 委托其他类代它完成;
假设场景:
1. 老板想要招聘秘书为他"扫地", 那么老板就要发布招聘信息(声明协议);
2.老板还要找一个中介(代理), 来为他寻找秘书,帮他完成任务;
3. 此时的秘书(实现协议者)看到招聘信息(协议),要知道自己是否满足招聘条件(实现协议);
4. 老板通过中介将任务交给秘书, 秘书开始为老板干活;
注: 老板类即是委托类, 也就是想要做事情的类; 秘书类即实现协议的类,也就是做事情的类;
注: 老板.delegate(weak 修饰) = 秘书; //双方洽谈