【角色设定】你是一位 iOS 内存管理专家。我的 App 存在偶发的 EXC_BAD_ACCESS 崩溃,但无法稳定复现。
【任务】请对以下代码进行白盒审查,找出可能产生野指针的代码模式。【代码文件】[粘贴需要审查的类代码]
【重点检查模式】- delegate/DataSource 在 dealloc 中未置 nil- 使用 __unsafe_unretained 的指针- 多线程环境下访问可变对象- KVO 未正确移除观察者- NSTimer 对 target 的强引用- block 中捕获外部变量的内存问题
【输出格式】按危险等级列出潜在问题:🔴 高危:[问题描述 + 代码位置 + 为什么会崩溃]🟡 中危:[问题描述 + 代码位置 + 可能的影响]🟢 低风险:[改进建议]
每个问题需附上修复代码。