iOS的代理和通知

一、代理和通知的异同

共同点:

利用代理和通知都能完成对象之间的通信

(比如A对象告诉B对象发生了什么事情,A对象传递数据给B对象)

不同点:

1>代理:一对一关系(1个对象只能告诉另1个对象发生了什么事情)

2>通知:多对多关系(1个对象能告诉N个对象发生了什么事情,1个对象能收到N个对象发生了什么事情)

二、使用代理的优缺点

1>缺点:

(1)代理方法较多,比较分散

(2)要处理一个请求,需要在很多地方编写代码

(3)不利于逻辑实现、代码编写、调试、维护以及扩展

(4)尤其当存在多个请求时会变得非常麻烦

2>优点:

  下载较大文件时,代理的作用将无可替代

 

三、代理详细说明

1>关于委托方与代理方:

委托方:可以是Controller,也可以是View

代理方:可以是Controller,也可以是View

但是,当委托方是Controller时,代理方不能为View(我目前没有这样用过)

2>即

委托方:View      代理方:View

委托方:View      代理方:Controller

委托方:Controller    代理方:Controller

错误用法:(委托方:Controller    代理方:View)

3>使用条件

当代理方在.m中使用到委托方,委托方在.m中设置代理为self,委托方发生事情,可以通知代理方实现相应方法

只有满足了这种情况,才可以用代理

四、通知详细使用

http://www.cnblogs.com/delegate/p/3763955.html

原文地址:https://www.cnblogs.com/yudigege/p/3865683.html