не удалось сохранить UIImage из фотобиблиотеки iphone - PullRequest
1 голос
/ 23 ноября 2011

Я пытаюсь сохранить изображение, выбрав его из библиотеки фотографий iphone. Но я не могу его спасти. Мой объект UIImage внезапно освобождается. Я получаю следующую ошибку: * - [UIImage release]: сообщение отправлено на освобожденный экземпляр 0x83fa5b0

Пожалуйста, проверьте мой код ниже:

-(void)imagePickerController:(UIImagePickerController *)picker 
        didFinishPickingMediaWithInfo:(NSDictionary *)info {

    NSLog(@"finish picking media");

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    if ([mediaType isEqualToString:@"public.image"]){

        UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
        NSLog(@"found an image");

        selectedImage=[self scaleAndRotateImage:selectedImage];
        NSLog(@"image scaled");
        //add image to mainpic
        imgvwProfile.image = selectedImage;
        NSLog(@"11");
        //[ setImage:selectedImage forState:UIControlStateNormal];
        self.imgPic=selectedImage;
        //self.isMainPicImageModified=YES;
        NSLog(@"22");
        //[self sendImage:selectedImage];
        NSLog(@"selectedimage width:%f ht:%f",selectedImage.size.width,selectedImage.size.height);
        [self saveImage:selectedImage withImageName:@"profilePic.png"];
        NSLog(@"33");
    }
}

Ошибка появляется, когда NSLog (@ "11"); был выполнен. Может кто-нибудь, пожалуйста, помогите мне, почему я получаю эту ошибку?

Спасибо Панкай

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Можете ли вы изменить ниже строки и проверить, если это утверждение создает проблемы или нет.

 imgvwProfile.image = selectedImage;
                To
 imgvwProfile.image = [selectedImage retain];

Дайте мне знать, что в этой функции происходит сбой вашего приложения.

0 голосов
/ 23 ноября 2011

Если ошибка возникает сразу после того, как NSLog (@ "11") был выполнен (вы видите 11 в консоли справа?), То это происходит при выпуске прежнего UIImage self.imgPic.Чтобы убедиться в этом, просто поставьте self.imgPic = null; в начале метода.

Если это так, проверьте свой код на наличие вызовов предыдущих выпусков imgPic или других переменных, указывающих на тот же экземпляр UIImage.Может быть, в scaleAndRotateImage или других методах.

...