代理

1.一个类里面对个代理对象,同一个协议还是有可能出现的并不是绝对的一对一
2.降低程序耦合度(依赖性不高。)结构层次更强
3.由代理者和委托者还有协议组成的一种设计模式
4.代理的时候必须用week或者你每次对象释放完就必须把delegate 设置成空,否则会产生野指针(用assign的话就必须手动置空)
4.代理方:


Paste_Image.png

5.代理参数


Paste_Image.png

就是调用委托者已经实现的代理方法(还有就是把自己当成代理)
6.委托者
遵守代理者的协议
实现代理者协议里面的方法
比较
什么时候用代理什么时候用block
比如多个消息需要传递的时候应该选择代理,比较不会臃肿代码,想Tableview封装的就是用代理来实现多个方法的
代理是一个属性只能有一个委托对象,当需要回调多个委托对象的时候就应该选择用block来进行
从性能看代理消耗小于block block涉及到堆栈的一系列操作消耗更大
代理更注重过程信息的传输:比如发起一个网络请求,可能想要知道此时请求是否已经开始、是否收到了数据、数据是否已经接受完成、数据接收失败 block注重结果的传输:比如对于一个事件,只想知道成功或者失败,并不需要知道进行了多少或者额外的一些信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容