weak 指针会在所指向对象被释放时自动置为 nil,请问这个置为 nil 的时机具体发生在什么时候?
考察说明
考察对引用计数内存管理生命周期及弱引用置空时机的理解
回答思路
- 明确 weak 指针置 nil 发生在对象引用计数归零并触发 dealloc 的自动释放阶段
- 说明置 nil 发生在 dealloc 回收内存的过程中,在对象内存被回收到系统堆池之前
- 区分引用计数归零、dealloc 调用、内存实际释放三个阶段的先后顺序
- 能解释为何 weak 指针在 dealloc 期间已合法访问,但对象方法不可再调用
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。