一.isa指针
要认识什么是isa指针,我们得先明确一点:
在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。
那么什么是类呢?在xcode中用快捷键Shift+Cmd+O 打开文件objc.h 能看到类的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/165becbab7b0c87af7812105af41956b.webp?x-image-process=image/format,png)
可以看出:
Class 是一个 objc_class 结构类型的指针, id是一个 objc_object 结构类型的指针.
我们再来看看 objc_class 的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/da2b321e56a175699584a447c2062076.webp?x-image-process=image/format,png)
要认识什么是isa指针,我们得先明确一点:
在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。
那么什么是类呢?在xcode中用快捷键Shift+Cmd+O 打开文件objc.h 能看到类的定义:
可以看出:
Class 是一个 objc_class 结构类型的指针, id是一个 objc_object 结构类型的指针.
我们再来看看 objc_class 的定义: