美文网首页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探纠

    obj为实例变量时 object_getClass(obj)与[obj class]地址输出结果,均获得isa指针...

  • iOS OC instance、class和meta-clas

    object_getClass 和 [obj class]的区别 object_getClass(obj)返回的是...

  • isa与superClass

    Class的实现: object_getClass的实现:

  • runtime object_getClass 和 objc_g

    object_getClass The class object of which object is an in...

  • swift 3.0获取对象类名

    let name: AnyClass! = object_getClass(obj) let className ...

  • iOS swift-开发笔记

    //*****//获取对象类型 object_getClass(对象) //*****//数字类型字符串转Int ...

  • iOS Runtime API 集锦

    iOS Runtime API 集锦 runtime 作用其实很多: 1 object_getClass obje...

  • self与super

    self为实例对象:[self class]\object_getClass(self), 返回都是本类的类对象;...

  • 既不回头 何必不忘 既然无缘 何须誓言 此番一遇 怕是一眼沉沦 无法分开 我本一俗人 却因你成魔 自此情欲皆斩 你...

  • 起风了, 恰巧我的房间没有纱窗, 我有点儿口渴。 桶装的矿泉水温存着久远的杂质, 可白开水浸泡的茶又不甜香。 当楼...

网友评论

    本文标题:object_getClass探纠

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