无法从iphone photolibrary中保存UIImage

时间:2011-11-23 13:06:17

标签: iphone ios uiimagepickercontroller

我试图通过从iphone照片库中选择来保存图像。但我无法保存它。我的UIImage对象突然释放。我收到以下错误: * - [UIImage发布]:发送到解除分配的实例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”)时出现错误;已执行。 有人可以帮助我,为什么我会收到这个错误?

由于 的Pankaj

2 个答案:

答案 0 :(得分:1)

您可以更改以下行并检查此声明是否有问题。

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

现在让我知道您的应用程序崩溃与否。

答案 1 :(得分:0)

如果在执行了NSLog(@“11”)之后立即发生错误(你在控制台中看到11对吗?),那么在发布self.imgPic的前UIImage时就会发生错误。要验证这一点,只需将self.imgPic = null;放在方法的开头即可。

如果是这样,请检查代码以查找imgPic上的前释放调用或指向同一UIImage实例的其他变量。也许在scaleAndRotateImage或其他方法。