基础知识iOS面试题+基础知识

iOS开发(4)OC对象的分类

2019-04-02  本文已影响146人  迷心迷

一、Objective-C中的对象,简称OC对象,主要可以分为3种

二、instance

instance对象就是通过类alloc出来的对象,每次调用alloc都会产生新的instance对象

NSObject *obj1 = [[NSObject alloc] init];
NSObject *obj2 = [[NSObject alloc] init];
1.png 2.png

三、class

3.png 4.png

四、meta-class

5.png 6.png

五、注意

六、isa

9.png

七、superclass

1、 class对象的superclass指针


10.png

当Student的instance对象要调用Person的对象方法时,会先通过isa找到Student的class,然后通过superclass找到Person的class,最后找到对象方法的实现进行调用

2、 meta-class对象的superclass指针


11.png

当Student的class要调用Person的类方法时,会先通过isa找到Student的meta-class,然后通过superclass找到Person的meta-class,最后找到类方法的实现进行调用

3、 isa、superclass总结

八、class的结构

1、isa指针


13.png 14.png

2、objc4源码下载

3、窥探struct objc_class的结构


16.png

九、面试题

1、对象的isa指针指向哪里?
instance对象的isa指向class对象
class对象的isa指向meta-class对象
meta-class对象的isa指向基类的meta-class对象

2、OC的类信息存放在哪里?
对象方法、属性、成员变量、协议信息,存放在class对象中
类方法,存放在meta-class对象中
成员变量的具体值,存放在instance对象

上一篇 下一篇

猜你喜欢

热点阅读