OC阅读笔记四:消息转发
2016-03-27 23:26
197 查看
在消息转发的过程中,可以告诉对象如何处理无法解读的未知消息.
消息转发分两大阶段,第一阶段为"动态方法解析",就是判断接收者所属的类能否动态添加方法处理未知消息.若使用该方法,需实现相关的代码.通常用来实现@dynamic属性.
第二阶段第一步,如果第一阶段返回NO,则会查看接收者内部其他对象是否能够处理未知的选择子,如果可以便返回该对象,否则进入下一步.
第二阶段第二步就是完整的消息转发机制.先创建NSInvocation对象,把选择器,目标,参数放入.在触发NSInvocation对象时,"消息派发系统"会把消息指派给目标对象.
如果发现调用操作不是本类处理,那么会继续调用超类的同名方法,直到最后调用NSObject类的"doesNotRecognizeSelector:"抛出异常,表示该选择子未能处理.
消息转发分两大阶段,第一阶段为"动态方法解析",就是判断接收者所属的类能否动态添加方法处理未知消息.若使用该方法,需实现相关的代码.通常用来实现@dynamic属性.
第二阶段第一步,如果第一阶段返回NO,则会查看接收者内部其他对象是否能够处理未知的选择子,如果可以便返回该对象,否则进入下一步.
第二阶段第二步就是完整的消息转发机制.先创建NSInvocation对象,把选择器,目标,参数放入.在触发NSInvocation对象时,"消息派发系统"会把消息指派给目标对象.
如果发现调用操作不是本类处理,那么会继续调用超类的同名方法,直到最后调用NSObject类的"doesNotRecognizeSelector:"抛出异常,表示该选择子未能处理.
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- AS3自写类整理笔记 ClassLoader类第1/2页
- AS3自写类整理笔记 Dot类第1/2页
- DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .
- perl脚本学习指南--读书笔记
- 《C++ primer plus》读书笔记(三)
- 《C++ primer plus》读书笔记(二)
- jquery 笔记 事件
- VPS 配置优化笔记
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略