-2

私はiPhone開発に不慣れです。これが私のコードです:

- (void)setImage:(UIImage *)image ImageKey:(NSObject *)imageKey
{

    NSNumber *number=(NSNumber*)imageKey;
    int num=[number intValue];
        UIScrollView *scrollViewFamily=(UIScrollView*)[scrollViewProfile viewWithTag:6];
        UIButton *btnPhoto=(UIButton*)[scrollViewFamily viewWithTag:num];
        [btnPhoto setImage:image forState:UIControlStateNormal];

        Photo *aPhoto= [appData.CurrentUser.familyListarray objectAtIndex:num-1000];
        aPhoto.photoImg=image;
 }

scrollviewのretainCountは3で、ボタン2の場合はaPhoto、1の場合はaPhotoです。今の私の質問は、「はい」の場合、これらのオブジェクトを解放する方法を書くのが正しいかどうかです。助けてください。ありがとう...

4

2 に答える 2

1

私のアドバイスは私たちARCにあり、メモリ管理について心配する必要はありません。それでも手動で実行したい場合は、retainCountに関するドキュメントから直接次のアドバイスを参考にしてください。

重要この方法は、通常、メモリ管理の問題をデバッグするのに価値がありません。任意の数のフレームワークオブジェクトがオブジェクトへの参照を保持するためにオブジェクトを保持している可能性があると同時に、自動解放プールがオブジェクトの任意の数の遅延リリースを保持している可能性があるため、これから有用な情報を取得できる可能性はほとんどありません。方法。従わなければならないメモリ管理の基本的なルールを理解するには、「メモリ管理ルール」をお読みください。メモリ管理の問題を診断するには、適切なツールを使用します。LLVM/ Clang Staticアナライザーは通常、プログラムを実行する前でもメモリ管理の問題を検出できます。Instrumentsアプリケーション(Instrumentsユーザーガイドを参照)のObject Allocインスツルメントは、オブジェクトの割り当てと破棄を追跡できます。

于 2012-06-05T07:16:44.720 に答える
-4

すべての行はメモリリソースへのポインタであるため、メモリリークは発生しません。あなたはそれを割り当てるときにメモリを解放する必要があります、それを行うには「自動解放」を使用します、それはあなたの人生を楽にします。

于 2012-06-05T07:21:15.967 に答える