我遇到了同样的问题我发现这条线是主要问题
[self.vImagePreview.layer addSublayer:captureVideoPreviewLayer];
只需在释放时从超级层中删除预览层,就不会出现内存问题。我的释放功能如下
-(void)deallocSession
{
[captureVideoPreviewLayer removeFromSuperlayer];
for(AVCaptureInput *input1 in session.inputs) {
[session removeInput:input1];
}
for(AVCaptureOutput *output1 in session.outputs) {
[session removeOutput:output1];
}
[session stopRunning];
session=nil;
outputSettings=nil;
device=nil;
input=nil;
captureVideoPreviewLayer=nil;
stillImageOutput=nil;
self.vImagePreview=nil;
}
我在弹出和推送任何其他视图之前调用了这个函数。它解决了我的问题。