3

UIImagePickerControllerアプリケーションで PhotoLibrary から画像を選択するために使用しています。これには 2 つの異なるアプローチを使用しました。UIImagePicker最初に、以下のコードでクラス変数を使用しました。

     imagepicker = [[UIImagePickerController alloc]init];
     imagepicker.delegate = self;
     imagepicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
     imagepicker.modalTransitionStyle = UIModalTransitionStylePartialCurl;
     [self presentModalViewController:self.imagepicker animated:YES];

上記のコードは正常に動作していますが、ボタンをクリックすると、この場合はアニメーションに反応するのに時間がかかります。次に、このメソッドで自動解放プールアプローチを使用しました

    NSAutoreleasePool *pool;
    pool = [[NSAutoreleasePool alloc] init]; 
    if([UIImagePickerController isSourceTypeAvailable:
        UIImagePickerControllerSourceTypePhotoLibrary])
    {
        UIImagePickerController *picker= [[[UIImagePickerController alloc]init]autorelease];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        picker.modalTransitionStyle = UIModalTransitionStylePartialCurl;
        [self presentModalViewController:picker animated:YES];

    }
    [pool release];

作品の魅力も。どちらもアナライザーでリークを示していません。誰かが正しいアプローチを教えてくれますか?

4

1 に答える 1

2

まあ、ここで言うことはあまりありません...どちらのアプローチも機能します。どちらのアプローチも正しいので、好きな方を使用してください。

マイナー ポイント: 定期的にイメージ ピッカーを表示している場合は、最初の方法を使用し、それをインスタンス変数 (「クラス変数」とは呼ばれません!) に割り当てるのは、最初だけにしてください。それを解放するまで- dealloc- このようにして、ユーザーが画像を選択するたびに、画像ピッカーの継続的な割り当てと割り当て解除を保存します。

于 2012-10-30T08:10:46.063 に答える