老师 麻烦问一下 散列表是存放的位置

来源:6-2 内存管理方案相关面试问题

慕斯卡622825

2019-01-05

散列表是存放在哪儿的?堆,栈还是已初始化数据区呢?用weak修饰的属性变量 也在散列表中的 weak 表中有吗?类对象会存储 属性列表 也就是用weak修饰的 对象的指针 这2个地方都有存储是吗?老师 很遗憾 恳请您抽时间回答一下 谢谢

写回答

1回答

于海

2019-01-12

散列表存放在哪取决于它的声明方式,建议具体参看objc-runtime680版本源码来确认。

属性是以指针形式存放在类对象的结构中,比如一个成员变量在类结构中在64位情况下存放一个指针,占有64位空间,存储一个变量。这部分是与所有权修饰符无关的。

弱引用表对weak修饰的某个类的属性变量应该存储的是指针的指针,就是二级指针。可以看下objc-runtime680源码确认下。
希望能帮助到你

0
0

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程