1

У меня есть модальный, который отображает UIImagePicker и позволяет пользователю делать снимок, который затем помещается в UIImageView.UIImagePicker Camera Memory Предупреждение останавливает изображение от установки UIImageView

Время от времени я получаю предупреждение о сохранении памяти «Предупреждение о принимаемой памяти», а UIImageView не присваивается. Приложение довольно простое, и оно не использует много памяти, и кажется, что много времени это связано с ImagePicker как отдельным процессом. Это происходит только при использовании камеры, и это происходит примерно один раз в пять раз.

Существует lot of talk about this online, и большинство ответов говорят «надлежащим образом обрабатывать предупреждение»; но я не уверен, что это значит - я просто хочу, чтобы полученная фотография отображалась в ImageView! Кажется, это произойдет, прежде чем я смогу сделать что-нибудь в этом деле в делегате UIImagePicker.

Что можно сделать для смягчения этого ?

Вот didFinishPickingImage делегат:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo { 
    //set background for image select button, put image reference somewhere to copy image to documents folder and insert into modular's sentence object. 
    //ImagePicker.jpg needs it's border set to 1px black. 

    NSLog(@"imagePickerController: selectedimage: %@", selectedImage); 

    imageViewBehindPhotoBigButton.clipsToBounds = YES; 
    [imageViewBehindPhotoBigButton.layer setBorderColor: [[UIColor blackColor] CGColor]]; 
    [imageViewBehindPhotoBigButton.layer setBorderWidth: 1.0]; 
    [imageViewBehindPhotoBigButton setBackgroundColor:[UIColor whiteColor]]; 

    [imageViewBehindPhotoBigButton setContentMode: UIViewContentModeScaleAspectFill]; 
    imageViewBehindPhotoBigButton.image = selectedImage; 

    imageViewBehindPhotoBigButton.hidden = NO; 
    [choosePhotoBigButton setBackgroundImage:nil forState:UIControlStateNormal]; 

    choosePhotoBarImage.hidden = NO; 
    choosePhotoText.hidden = NO; 

    addButton.enabled = YES; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {  
     //because iPad uses a pop up - we don't want to dismiss modals here! 
     [imagePopupController dismissPopoverAnimated:YES]; 

    }else{ 
     [self dismissModalViewControllerAnimated:YES];  
    } 



} 

ответ

5

ответ был реализовать многопоточность при масштабировании/обработки изображения с UIImagePickerController Там действительно хорошая дискуссия, что я использовал here

+0

привет, спасибо за.. ваш ссылка. Пока это работает - без «Memory Warning». Я также подумал об этом, прежде чем я приземлился здесь, но то, что мешало мне это сделать, состояло в том, что я думал, что он может потреблять больше обработки сока/памяти при уменьшении изображения, но, похоже, это работает. Еще раз спасибо. – Unheilig

Смежные вопросы