美文网首页
iOS 类对象可以调用NSObject实例方法,实例对象不能调用

iOS 类对象可以调用NSObject实例方法,实例对象不能调用

作者: 大白龙 | 来源:发表于2019-08-02 15:37 被阅读0次

    学习Class结构体的同学都知道,iOS Class的结构体如下图所示:

    类机构体

    而了解对象数据存储的同学都知道:实例对象的实例变量是存在实例对象里的,实例方法是存在实例对象isa指向的类对象里,类方法是存在类对象isa指向的元类对象里,isa 指向和Class的继承关系如下图所示:

    方法流程图

    当Subclass 调用方法会沿着 Subclass(meta)-> Superclass(meta) ->RootClass(meta)->NSObject 查找方法,而根元类存的是类方法,NSObject 存的为实例方法,所以subClass 可以调用NSObject实例方法。而NSObject的父类为nil,故Subclass的实例不能调用NSObject的类方法。

    相关文章

      网友评论

          本文标题:iOS 类对象可以调用NSObject实例方法,实例对象不能调用

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