我得到了这种方法,它每隔几秒钟就会抓取相机缓冲区图像进行一些图像处理。
下面的方法在我所有的测试中都运行良好,但是崩溃报告中却存在大量崩溃。
final func cameraBufferProcessing () {
DispatchQueue.global(qos: .background).sync { [unowned self] in
if let bufferImage = self.cameraBufferImage?.oriented(.downMirrored) {
let heightPropotion : CGFloat = bufferImage.extent.height * 0.5 //Crashes on this line
if let cgImg = self.context.createCGImage(bufferImage.clampedToExtent(), from: CGRect(x: 0, y: heightPropotion, width: bufferImage.extent.width, height: heightPropotion))
{
DispatchQueue.main.async {
// use with cgImg to do image processing
}
}
} else {
// do something else
}
}
}
崩溃报告指向上方第三行:
let heightPropotion : CGFloat = bufferImage.extent.height * 0.5
崩溃似乎与程度有关。
这可能是什么原因?