AVCaptureSessionのセッションがローカルのNSMutableArrayに実行されているときに画像をキャプチャしているときに、didReceiveMemoryWarning呼び出しを受け取ります。少しテストしたところ、ARRAYが特定のカウントに達したときに発生することがわかりました。
配列に追加するオブジェクトのタイプとしてUIImageを使用しているためだと思います。それらの画像を保存するのに最適な形式は何ですか?
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
CVPixelBufferRef pixel_buffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixel_buffer];
CGImageRef ref = [self.context createCGImage:ciImage fromRect:ciImage.extent];
UIImage *image = [UIImage imageWithCGImage:ref scale:1.0 orientation:UIImageOrientationRight];
CGImageRelease(ref);
[self.capturingImageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
if (saveImages == YES) { //this a BOOL value that becomes YES when the user clicks the RECORDING button.
[dImagesArray addObject:image];
}
}