Я пытаюсь быстро делать и сохранять фотографии с помощью камеры, так быстро, как это может делать iPhone. Проблема в том, что они не сохраняются до конца, а затем это занимает вечность, или от 1/2 до 3/4 не сохраняются вообще (ошибка Write busy или -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL).
Готов поспорить, я просто перегружаю память телефона, но не могу придумать, как с этим справиться эффективно. Стандартное приложение камеры iPhone прекрасно справляется с этим - снимает почти со скоростью 1 фото в секунду и сохраняет без проблем.
Есть идеи, как лучше управлять процессом / памятью, чтобы можно было сохранять в процессе работы, но при этом быстро снимать?
Вот немного моего кода. takePicture вызывается всякий раз, когда self.readyToTake = YES.
- (void)takePicture {
self.delegate = self;
[super takePicture];
self.readyToTake = NO;
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
self.readyToTake = YES;
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
- (void)image:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo:(NSDictionary*)info {
if (error)
{
NSLog([NSString stringWithFormat:@"** ERROR SAVING PHOTO: %@", [error localizedDescription]]);
}
}
Спасибо за помощь!
ИЗМЕНИТЬ
Если я перед сохранением уменьшу размер фотографий, например, 480x640, у меня не возникнет проблем с быстрым сохранением. Однако я хочу снимать и сохранять полноразмерные изображения. Родное приложение камеры, кажется, справляется с этим нормально.