学习Class结构体的同学都知道,iOS Class的结构体如下图所示:
类机构体而了解对象数据存储的同学都知道:实例对象的实例变量是存在实例对象里的,实例方法是存在实例对象isa指向的类对象里,类方法是存在类对象isa指向的元类对象里,isa 指向和Class的继承关系如下图所示:
方法流程图当Subclass 调用方法会沿着 Subclass(meta)-> Superclass(meta) ->RootClass(meta)->NSObject 查找方法,而根元类存的是类方法,NSObject 存的为实例方法,所以subClass 可以调用NSObject实例方法。而NSObject的父类为nil,故Subclass的实例不能调用NSObject的类方法。
网友评论