这几天一直在思考代理的工作原理。代理可以获得事件或数据信息、调用与此信息相关的方法、把信息传给该方法,实现对事件或数据信息的回应。
这里我最大的疑惑是,代理如何把事件与方法对应起来?例如:A对象定义了一组代理协议,B对象作为A的代理,实现了所有的协议方法,当某个事件发生时,A的代理如何知道应该调用哪个协议方法?是根据方法名吗?我怀疑是因为所有代理都继承自NSObject协议,这一组协议可能使代理具有了神奇的功能。
另一个令我疑惑的事情是,自定义代理与现成的代理有什么区别?现成代理,例如UITableViewDelegate,哪个代理方法对应什么事件,手册上都有明确说明;自定义代理呢?我心里想的是,这个代理方法要对某某事件作出反应,可一定会吗?
假如代理的工作模式是:A定义了代理,则在事件发生时(系统认定为事件的),自动找代理,看代理声明了几个方法,然后看这个事件属于哪个方法来处理(关键问题还是在这里,如何确定事件与方法的对应关系?),然后看这个方法有没有被B实现。
望大牛指教!
IOS代理协议方法是如何被调用的?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
悬赏问题
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
- ¥20 双层网络上信息-疾病传播
- ¥50 paddlepaddle pinn