我不明白为什么我的应用程序随机崩溃在这里。
if PlayerViewController.canUpdate {
DispatchQueue.main.sync {
guard !(self.barView?.isHidden ?? false) else { . //crash_happens_here
return;
}
do {
self.barView?.updateBuffer(pcmBuffer.mBuffers.mData?.assumingMemoryBound(to: CFloat.self), withBufferSize: UInt32(numberFramesOut / 2));
}
}
}
完整的代码在这里。
答案 0 :(得分:1)
执行保护后,可能不存在'Self'或'barView',请尝试使用 StrongSelf并将barView添加到后卫
if let strongSelf = self, let barView = strongSelf.barView {
guard !(barView.isHidden ?? false) else { . ....
}
答案 1 :(得分:1)
我会猜测self.barView
是可选的,也是weak
。尝试将其作为正常的强参考。有时这足以使这种错误消失。