object_getClass探纠
2017-08-17 本文已影响11人
de7e01056dd4
[self class]
[self superclass]
[super class] //super 拿到当前对象去调用父类方法
obj为实例变量时
object_getClass(obj)与[obj class]地址输出结果,均获得isa指针,即指向类对象的指针
obj为Class类对象
在Object-C中,任何类的对象都是对象,类和类的实例(对象)没有任何本质上的区别,任何对象都有isa指针
isa指针

isa指针的作用: 当我们向一个对象发送消息时,runtime会根据这个对象的isa指针找到这个对象所属的类,在这个类的方法列表及父类的方法列表中,寻找与消息对应的selector指向的方法,找到后就执行这个方法
1.向一个对象发送消息时,rumtime会在这个对象所属的类的方法列表中查找方法
2.向一个类发送消息时,会在这个类的meta-class的方法列表中查找
SEL
SEL选择器:是方法selector的指针, oc在编译时,会依据每个方法的名称,参数,所属类,生成一个唯一的整型标识,所以通过SEL这个指针,就可以在table里面找到这个方法的IMP
参考链接
object_getClass(obj)与[obj class]的区别
runtime运行时 isa指针 SEL方法选择器