ここに私の問題があります。写真を撮るカスタム AVCaptureSession を作成しました。理由はわかりませんが、 を 3 回呼び出すとstartRunning
、クラッシュします。を実装didReceiveMemoryWarning
しましたが、クラッシュする前に呼び出されませんでした。インストルメントも実行しましたが、AVCaptureSession に関連するメモリ リークはありませんでした。XCode のコンソール経由のログもありませんでした。
didReceiveMemoryWarning
だから私の質問は... が呼び出されなかったとしても、それはメモリの問題ですか? これが私のコードの一部です。
viewWillDisappear (ViewController)
- (void)viewWillDisappear:(BOOL)animated {
if (cameraFlashButton) { [cameraFlashButton release]; }
if (switchCamera) { [switchCamera release]; }
if (cameraBadgeBack) { [cameraBadgeBack release]; }
if (cameraBadgeNumber) { [cameraBadgeNumber release]; }
if (cameraUseButton) { [cameraUseButton release]; }
if (cameraOverlayView) { [cameraOverlayView release]; }
if (blackOverlay) { [blackOverlay release]; }
if (loadingIndicator) { [loadingIndicator release]; }
if (cameraPickButton) { [cameraPickButton release]; }
if (whiteOverlay) { [whiteOverlay release]; }
if (imageOverlay) { [imageOverlay release]; }
if (captureManager) { [captureManager release], captureManager = nil; }
if (theCaptureSession) { [theCaptureSession release], theCaptureSession = nil; }
[super viewWillDisappear:YES];
}
dealloc (CaptureSessionManager)
- (void)dealloc {
if ([self captureSession]) { [[self captureSession] stopRunning]; }
if (previewLayer) { [previewLayer release], previewLayer = nil; }
if (captureSession) { [captureSession release], captureSession = nil; }
if (stillImageOutput) { [stillImageOutput release], stillImageOutput = nil; }
if (stillImage) { [stillImage release], stillImage = nil; }
[super dealloc];
}
アイデア?他に何か見る必要がある場合は、お尋ねください。前もって感謝します。