美文网首页
iOS中元类和类

iOS中元类和类

作者: Idoahc | 来源:发表于2020-04-24 15:44 被阅读0次

    元类和类的数据结构是同一个,只是运行时使用的字段不一样。

    实例方法调用是通过objc_msgSend来调用,它的第一个入参就是实例对象,其流程是查找实例对象的isa指针,找到类对象,然后找到method_t的IMP,bl直接跳转调用。

    类方法的调用和实例方法调用一致,它的第一个入参对象是类对象,类对象的isa指向的是元类。

    所以,没有元类的话,类方法是没有办法调用的。objc_msgSend的调用流程是一定要isa指针的。

    如果实例方法和类方法都放在类对象上,那类对象的isa指针只能指向自己了,那一旦类方法和实例方法重名,就没法搞了!

    相关文章

      网友评论

          本文标题:iOS中元类和类

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