1

iamが写真ライブラリから画像をインポートしようとしましたが、インポートボタンを押すとプログラムがクラッシュし、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]

すべてのivarにアクセサーを使用するように切り替える必要があります。アクセサーとdeallocは、通常、ivarを保持または解放する必要がある唯一の場所です。ピッカーはあなたのivarではなく、あなたはそれを作成しなかったので、それをリリースするべきではありません。

しばらくの間、メモリ管理プログラミングガイドを参照してください。ショートバージョンはThreeMagicWordsで入手できます。

于 2010-09-11T14:56:45.443 に答える
1

iPad iOS 3.2では、UIImagePickerControllerは、モーダルビューとしてではなく、ポップオーバーで表示する必要があります。

これをチェックしてください:http: //www.cocos2d-iphone.org/forum/topic/6108

于 2010-09-11T18:03:54.443 に答える