代理模式运用场景: 当有一个A类想要实现某一个功能时,自己本身实现不了(或不想实现),但是B类却能实现这个功能, 这个时候A就需要一个代理类(就是B类),利用B类来帮自己实现。代理是通过协议体现的
步骤: 1:(谁想实现某功能就在谁的里面写一个协议)首先在A类的头文件中写一个协议(@protocol)
并声明一个方法(或多个方法),该方法就是实现
某一个功能方法
2: A类中写一个代理属性 (id <协议名称>delegate)
3: 在A类的实现文件中调用delegate属性, 并调用其协议中声明的方法(实现的是B类中实现协议中的方法)
4:在B类中遵守协议 , 并实现协议方法(该方法就是实现了某一个功能)
直接上图说明吧,
1:这里RXFootView充当A类 首先在A类中写好协议及方法、id属性
2: 在A类实现文件中调用协议中的方法,其实主要作用就是传值
3:在B类中指定代理并实现协议中的方法即可,,就三步你就可以使用代理了,
总结:一般项目中代理是常用的传值方法,但是它不能对多个对象传值,它是one-one,如果有这种需求就可以使用通知了,通知使用起来也是非常方便的,一般运用场景就是弹出一个下拉列表进行城市选择之类的业务。