请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何区分非指针和指针型

isa 指针分为 非指针和指针型 但是在runtime 里面是如何区分这两种呢?
怎么才能知道我通过isa指针查找的对象是我想要?

正在回答 回答被采纳积分+3

1回答

于海 2018-12-22 12:13:40

非指针型一般是在64位架构下存在,这时一些诸如nsnumber等所谓的小对象的值会存储到指针值里面。那么我们可以写一段示例代码在控制台打印观察指针地址即可

0 回复 有任何疑惑可以回复我~
  • 老师小对象不是taggedPointer 么 非指针型的isa 指针如果64位下不是也会存储一部分引用计数和其他的信息么,不是根据最后一位是1,0 来判断是不是NONPINTER_ISA 么,还是我搞混了
    回复 有任何疑惑可以回复我~ 2019-10-04 10:11:58
  • Chouee 回复 慕粉3233736 #2
    arm平台是看地址最高位,Osx是地址最低位,我看源码是这样的。
    回复 有任何疑惑可以回复我~ 2022-02-18 11:32:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信