伪指针 NSTaggedPointer

2018-07-19  本文已影响0人  梁发朋_20bb

举例 0xa000000007070703

这个指针是最初没有想到的

环境


这是时候报错 NSTaggedPointerString 找不到方法 replace...

1、标识符          最高四位

2、数据内容     中间部分

3、数据信息      最低八位

0xa000000007070703

Isa 0xa

数据内容 \x70 \x70 \x70

数据长度是3

这个是和NSNumber的使用方式一样的设计

打印 0xb0000000000000a2

能够阅读 Oxb 就是类型  \a翻译成数字就是10  2就是长度为2


总结

苹果从推出64位处理器之后为了提升效率,采用了这种虚拟指针的技术,对于这种处理因为苹果既要维护生命周期还要维护引用计数,过多的逻辑造成了不必要的效率缺少,因此采用了这种虚拟指针

上一篇下一篇

猜你喜欢

热点阅读