循环引用常见场景有哪些?Block 如何构成循环引用?如果 Block 中 weak 修饰的对象被提前释放会发生什么?
考察说明
考察对 Block 捕获机制与循环引用成因、Weak 使用场景及释放后行为的理解
回答思路
- 列举 Block 导致循环引用的典型场景(如对象持有 Block,Block 又捕获 self)
- 解释 Block 捕获外部变量及持有语义如何形成引用环
- 说明 weak 修饰对象提前释放后的行为(置 nil,消息发送安全)
- 区分 weak 与 unsafe_unretained 在不同场景下的处理
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。