1.png
2.png
在arm64之前isa就是普通的指针,只存储类对象,元类对象的指针,但是arm64之后,isa做了优化,采取了共用体结构,将一个64位的内存数据分开存储了很多东西,其中33位用来存储地址值
3.png
4.png
5.png
6.png
7.png
8.png
右边数第二位是1与has_assoc相对,说明有关联对象
9.png
10.png
11.png
这个刚好是弱引用为1,所以通过isa,可以搞清楚,是否有关联对象,是否弱引用过
如果没有设置过关联对象和弱引用的话,会释放的更快,从下面的源码中可以看到
12.png
转载至:https://blog.csdn.net/u012581760/article/details/81230721