代理(Delegate)
Q: 什么是代理?
- 准确的说代理是一直软件设计模式(代理模式)
- iOS中以@protocol的形式体现
- 传递方式是一对一
下面简述一下代理的工作流程

这里我们需要知道一下,协议中可以定义哪些内容?协议可以通过@required
定义必须实现的代理方法,通过@optional
定义可选方法
- 成员属性
- 方法
在使用代理的时候,存在一个循环引用的问题,当代理,协议,委托都通过强引用形成一个闭环,则会造成内存泄露的问题,此时我们通常会让委托方弱引用指向代理方来避免循环引用:

NSNotification
这里先一下通知(NSNotification)的特点
- 使用观察者模式来实现的用于跨层传递消息的机制
- 传递方式为一对多
通过一幅图看看通知的大致实现机制

网友评论