Итак, вот моя проблема: я создал собственный AVCaptureSession, который делает снимки. Я не знаю почему, но при третьем вызове startRunning
происходит сбой. Я реализовал didReceiveMemoryWarning
, и он не вызывался до сбоя. Я также запускал на нем инструменты, и утечек памяти, связанных с AVCaptureSession, не было. Также не было логов через консоль в XCode.
Итак, мой вопрос: это проблема с памятью, хотя didReceiveMemoryWarning
не вызывалась? Вот часть моего кода.
viewWillDisappear (Вьюконтроллер)
- (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];
}
Идеи? Если вам нужно увидеть что-то еще, просто спросите! Заранее спасибо.