2 qq 29986049 qq_29986049 于 2015.07.20 23:06 提问

IOS代理协议方法是如何被调用的?

这几天一直在思考代理的工作原理。代理可以获得事件或数据信息、调用与此信息相关的方法、把信息传给该方法,实现对事件或数据信息的回应。
这里我最大的疑惑是,代理如何把事件与方法对应起来?例如:A对象定义了一组代理协议,B对象作为A的代理,实现了所有的协议方法,当某个事件发生时,A的代理如何知道应该调用哪个协议方法?是根据方法名吗?我怀疑是因为所有代理都继承自NSObject协议,这一组协议可能使代理具有了神奇的功能。
另一个令我疑惑的事情是,自定义代理与现成的代理有什么区别?现成代理,例如UITableViewDelegate,哪个代理方法对应什么事件,手册上都有明确说明;自定义代理呢?我心里想的是,这个代理方法要对某某事件作出反应,可一定会吗?
假如代理的工作模式是:A定义了代理,则在事件发生时(系统认定为事件的),自动找代理,看代理声明了几个方法,然后看这个事件属于哪个方法来处理(关键问题还是在这里,如何确定事件与方法的对应关系?),然后看这个方法有没有被B实现。
望大牛指教!

3个回答

caozhy
caozhy   Ds   Rxr 2015.07.20 23:16
CSDNXIAOD
CSDNXIAOD   2015.07.20 23:10

ios 进阶 -- 调用webservice接口(soap协议)的方法
iOS使用代理方法的调用模式
iOS AppDelegate协议方法
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_36634059
qq_36634059   2016.11.09 14:17

iOS 如何写/使用delegate代理模式 iOS 如何写/使用delegate代理模式

Csdn user default icon
上传中...
上传图片
插入图片