iPhone UIImageView с камерой или рулеткой камеры Предупреждение об уровне памяти 2 - PullRequest
1 голос
/ 17 августа 2010

Я оооочень близок к тому, чтобы наконец-то закончить свое первое приложение, которое можно было положить в магазин.Все работает просто отлично, а утечки памяти практически полностью отсутствуют ... за исключением случаев, когда я использую камеру или выбираю изображение с рулона камеры.

Если пользователь выбирает камеру вместо рулона ...... камера работает нормально ... делает снимок, а затем, когда они выбирают "Использовать", он падает.То же самое для камеры ролл.Я нуб, поэтому, если я что-то напутаю, меня это не удивит.Любая помощь / предложения с благодарностью ... вот код:

    -(IBAction) getPhoto:(id) sender {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhoto) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self presentModalViewController:picker animated:YES];
    //[picker release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    theimageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [picker release];
}

Ответы [ 3 ]

0 голосов
/ 17 августа 2010

Ваша проблема может заключаться в том, что, поскольку вы используете исходное изображение, поскольку оно имеет размер около 1400x750 (не уверен в точных размерах), вам, вероятно, не хватает памяти, когда вы устанавливаете его как изображение для просмотра изображения, которое будет отображаться... Вам, вероятно, следует изменить размер изображения до 320x480 или 480x320, чтобы отобразить его в представлении изображения, что, вероятно, решит вашу проблему.

0 голосов
/ 02 мая 2012

Изменить
[picker dismissModalViewControllerAnimated: YES];
до
[self dismissModalViewControllerAnimated: YES];
Это должно работать

0 голосов
/ 17 августа 2010

Единственная проблема, которая выскакивает из меня, это то, что UIImagePickerControllerOriginalImage является константой NSString, поэтому вы не хотите помещать ее в кавычки:

theimageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];

Но даже если эта строка потерпит неудачу, она только установит theimageView.image на nil, что, вероятно, не должно вызвать сбой. Вы должны увидеть, по крайней мере, некоторую дополнительную информацию о сбое в консоли Xcode, которая поможет. Также ознакомьтесь с советами в этом SO-ответе .

...