伪指针 NSTaggedPointer

举例 0xa000000007070703

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

环境



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


1、标识符          最高四位

2、数据内容     中间部分

3、数据信息      最低八位

0xa000000007070703

Isa 0xa

数据内容 \x70 \x70 \x70

数据长度是3


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


打印 0xb0000000000000a2

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


总结

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容