码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-03-01 14:32:40      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:程序崩溃   创建   列表   cti   zed   异常   tor   程序   运行   

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

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

标签:程序崩溃   创建   列表   cti   zed   异常   tor   程序   运行   

原文地址:http://www.cnblogs.com/VzhanggengD/p/6483860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!