2010-09-11 43 views
1

iam试图从照片库导入图像,但当我按导入按钮程序崩溃并收到SGIBART!但我的代码在iPhone上工作正常吗?iPad UIImagePicker问题!

这里是我的代码:

.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]; 
} 
+0

你表明它抛出SIGABRT,但然后说你的代码工作正常。 “你工作得很好吗?”是什么意思?什么是信号点的崩溃堆栈? – 2010-09-11 14:51:26

+0

我的作品很好,IPHONE不IPAD – 2010-09-11 16:54:34

回答

2

你崩溃,因为你释放选择器,但你没有保留它。您应该删除对[picker release]的呼叫。

您应该切换到使用所有ivars访问器。访问者和dealloc通常是你应该保留或释放你的ivars的唯一地方。选择器不是你的伊娃,你没有创建它,所以你不应该释放它。

你应该花一些时间与Memory Management Programming Guide。您可以在Three Magic Words获得简短版本。

+0

我删除了,但不工作!:( – 2010-09-11 16:55:06