美文网首页iOS Stack
object_getClass探纠

object_getClass探纠

作者: de7e01056dd4 | 来源:发表于2017-08-17 13:02 被阅读11次
    [self class]
    [self superclass]
    [super class] //super 拿到当前对象去调用父类方法
    

    obj为实例变量时

    object_getClass(obj)与[obj class]地址输出结果,均获得isa指针,即指向类对象的指针

    obj为Class类对象

    在Object-C中,任何类的对象都是对象,类和类的实例(对象)没有任何本质上的区别,任何对象都有isa指针

    isa指针

    objc_object
    isa指针的作用: 当我们向一个对象发送消息时,runtime会根据这个对象的isa指针找到这个对象所属的类,在这个类的方法列表及父类的方法列表中,寻找与消息对应的selector指向的方法,找到后就执行这个方法

    1.向一个对象发送消息时,rumtime会在这个对象所属的类的方法列表中查找方法
    2.向一个类发送消息时,会在这个类的meta-class的方法列表中查找

    SEL

    SEL选择器:是方法selector的指针, oc在编译时,会依据每个方法的名称,参数,所属类,生成一个唯一的整型标识,所以通过SEL这个指针,就可以在table里面找到这个方法的IMP

    参考链接
    object_getClass(obj)与[obj class]的区别
    runtime运行时 isa指针 SEL方法选择器

    相关文章

      网友评论

        本文标题:object_getClass探纠

        本文链接:https://www.haomeiwen.com/subject/pqourxtx.html