1

我正在尝试从照片库导入图像,但是当我按下导入按钮时程序崩溃并收到 SGIBART !但我的代码在 iPhone 上运行良好,为什么?

这是我的代码:

。H :

@interface CameraViewController : UIViewController <UIImagePickerControllerDelegate ,UINavigationControllerDelegate> {

    UIImagePickerController *ipc;
    UIImageView * image1;

@property (.......................;
}

.m:

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



    image1.image = [[info objectForKey:UIImagePickerControllerOriginalImage]retain];
    [[picker parentViewController]dismissModalViewControllerAnimated:YES];
    [picker release];   

}


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

    [[picker parentViewController]dismissModalViewControllerAnimated:YES];
    [picker release];


}



        -(IBAction) importImage1 {

    ipc = [[UIImagePickerController alloc]init];
    ipc.delegate = self;
    ipc.sourceType =  UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:ipc animated:YES];
}
4

2 回答 2

2

您正在崩溃,因为您正在释放选择器,但您没有保留它。您应该删除对[picker release].

您应该切换到对所有 ivars 使用访问器。访问器和 dealloc 通常是您应该保留或释放您的 ivars 的唯一地方。picker 不是你的 ivar 并且你没有创建它,所以你根本不应该发布它。

您应该花一些时间阅读内存管理编程指南您可以在三个魔术词中获得简短版本。

于 2010-09-11T14:56:45.443 回答
1

在 iPad iOS 3.2 上, UIImagePickerController 必须显示在popover中,而不是作为模式视图。

看看这个: http: //www.cocos2d-iphone.org/forum/topic/6108

于 2010-09-11T18:03:54.443 回答