OC----类加载
程序员文章站
2022-03-09 20:03:33
...
在执行时, Student *stu1 = [Student new] 会作类加载,
加载项有:
1. Student 自己定义的属性,方法
2. Person 类(_name, - (void)say...)
3. NSObject 类(isa, description,..)
所有子类对象中有自己的属性,方法,与所有父类的属性,方法
[stu1 say] 执行的顺序是: 通过stu1 指针(栈)找到对象 -> Student 的isa(堆) -> Student(代码段)中 - (void)say
代码段中的每一个类都有一个叫做isa 的指针,这个指针指向它的父类,一直指到NSObject.
[stu1 say]; //假设stu1是Person对象.
1. 先根据stu1 指针找到stu1 指向的对象,然后根据对象的isa 指针找到Person 类.
2. 搜索Person 类中是否有这个say 方法 如果有执行
3. 如果没有 就根据类的isa 指针找父类, NSObject 中如果没有就报错.
上一篇: OC----动态类型的检测
下一篇: 检索文字里的手机号