runtime
来源:互联网 发布:网络会员制营销案例 编辑:程序博客网 时间:2024/05/19 13:28
动态方法决议是先于消息转发的。
如果向一个 Objective C 对象对象发送它无法处理的消息(selector),那么编译器会按照如下次序进行处理:
1,首先看是否为该 selector 提供了动态方法决议机制,如果提供了则转到 2;如果没有提供则转到 3;
2,如果动态方法决议真正为该 selector 提供了实现,那么就调用该实现,完成消息发送流程,消息转发就不会进行了;如果没有提供,则转到 3;
3,其次看是否为该 selector 提供了消息转发机制,如果提供了消息了则进行消息转发,此时,无论消息转发是怎样实现的,程序均不会 crash。(因为消息调用的控制权完全交给消息转发机制处理,即使消息转发并没有做任何事情,运行也不会有错误,编译器更不会有错误提示。);如果没提供消息转发机制,则转到 4;
4,运行报错:无法识别的 selector,程序 crash;
0 0
- runtime
- Runtime
- Runtime
- Runtime
- runtime
- runtime
- Runtime
- runtime*****
- runtime
- runtime
- runtime
- runtime
- runtime
- Runtime
- runtime
- runtime
- runtime
- runtime
- 网络链接
- 卡尔曼滤波器
- linux开机自启脚本
- 杂项
- ubuntu 12.04 LTS上lvm的使用
- runtime
- 制作iOS Ad-Hoc测试应用
- webservice递归集合
- 利用表达式树构建委托改善反射性能
- Leetcode Word Break II
- android.view.WindowManager$BadTokenException: Unable to add window — token null
- Activity跳转与传值
- 动态调整对话框属性(去掉标题栏,去掉边框,修改类似成Border:NONE样式)
- hdu 1233 还是畅通工程