在调试一堆 NSIndexPath
对象时,我注意到其中一个对象有一个不寻常的指针。
其中一个索引路径的地址为 0xc000000388400016。所以它的两个最高位设置为 1。出于兴趣,我很想知道这意味着什么。我知道最低位用于标记指针,但在这种情况下最低位为 0。哪些对象被映射到这个高地址范围?
最佳答案
它在 64 位代码中被标记为指针对象。
在这里查看更多信息:Github
OBJC_TAG_NSAtom = 0,
OBJC_TAG_1 = 1,
OBJC_TAG_NSString = 2,
OBJC_TAG_NSNumber = 3,
OBJC_TAG_NSIndexPath = 4,
OBJC_TAG_NSManagedObjectID = 5,
OBJC_TAG_NSDate = 6,
OBJC_TAG_7 = 7
关于ios - Objective C 内存布局 : Meaning of the highest 2 bits of a 64bit pointer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45710700/