Я пытаюсь снимать и сохранять фотографии с помощью камеры так быстро, как только может 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]]);
}
}
Спасибо за помощь!
EDIT
Если перед изменением я изменю размеры фотографий до гораздо меньших размеров, например 480x640, у меня не возникнет проблем с быстрым сохранением. Тем не менее, я хочу захватить и сохранить полноразмерные изображения. Нативное приложение Camera, кажется, прекрасно с этим справляется.