Во время захвата изображений, поскольку сеанс AVCaptureSession выполняется в локальном массиве NSMutableArray, я получаю вызов didReceiveMemoryWarning. после небольшого тестирования я обнаружил, что это происходит, когда МАССИВ достигает определенного количества.
Я предполагаю, что это потому, что я использую 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];
}
}