您的位置:首页 > 移动开发 > Objective-C

简述下Objective-C中调用方法的过程(runtime)

2020-02-02 05:20 801 查看
  • Objective-C是动态语言,每个方法在运行时会被动态转为消息发送,即:
    objc_msgSend(receiver, selector)
    ,整个过程介绍如下: objc在向一个对象发送消息时,runtime库会根据对象的isa指针找到该对象实际所属的类
  • 然后在该类中的方法列表以及其父类方法列表中寻找方法运行
  • 如果,在最顶层的父类(一般也就NSObject)中依然找不到相应的方法时,程序在运行时会挂掉并抛出异常
    unrecognized selector sent to XXX
  • 但是在这之前,objc的运行时会给出三次拯救程序崩溃的机会,这三次拯救程序奔溃的说明见问题《什么时候会报unrecognized selector的异常》中的说明
  • 补充说明:Runtime 铸就了Objective-C 是动态语言的特性,使得C语言具备了面向对象的特性,在程序运行期创建,检查,修改类、对象及其对应的方法,这些操作都可以使用runtime中的对应方法实现。
  • 转载于:https://www.cnblogs.com/VzhanggengD/p/6483860.html

    • 点赞
    • 收藏
    • 分享
    • 文章举报
    dongbinxiao4692 发布了0 篇原创文章 · 获赞 0 · 访问量 230 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: