Voici mon problème: J'ai créé une session AVCapture personnalisée qui prend des photos. Je ne suis pas sûr pourquoi, mais la troisième fois que vous appelez startRunning
, cela plante. J'ai implémenté didReceiveMemoryWarning
, et il n'a pas été appelé avant le plantage. J'ai également exécuté des instruments dessus et il n'y avait pas de fuites de mémoire associées à la AVCaptureSession. Il n'y avait également aucun log via la console de XCode.
Donc ma question est... est-ce un problème de mémoire même si didReceiveMemoryWarning
n'a pas été appelé? Voici une partie de mon code.
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];
}
Des idées? Si vous avez besoin de voir autre chose, demandez simplement! Merci d'avance.