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