または、+(void)の反対は何ですか?目的C - グローバルな静的変数はどこでdeallocしますか?
:関数としてUnit.mファイルで定義された遅延して作成されたグローバルNSDictionaryの、からのデータをとります(ID)initWithNameは - 私はそのクラスのユニットを、持っている:ここ
は、私の状況です静的NSMutableDictionary * unitLibrary = nil;
ここで[unitLibrary release]を呼び出しますか?
または、+(void)の反対は何ですか?目的C - グローバルな静的変数はどこでdeallocしますか?
:関数としてUnit.mファイルで定義された遅延して作成されたグローバルNSDictionaryの、からのデータをとります(ID)initWithNameは - 私はそのクラスのユニットを、持っている:ここ
は、私の状況です静的NSMutableDictionary * unitLibrary = nil;
ここで[unitLibrary release]を呼び出しますか?
ディクショナリがもう必要ないと分かっている場所で呼び出すことができます。アプリケーションのライフサイクル全体にわたって必要な場合は、アプリケーション終了時にすべてのメモリがOSによって再利用されるため、何もする必要はありません。
一般的な回答はありません。再度使用されないことを確認したら、割り当てを解除する必要があります。可能な候補は、applicationWillTerminateデリゲートメッセージにあるか、またはatexit()機能を使用している可能性があります。
これはiphoneにあるので、メモリリークは発生しません。ユーザーがホームボタンを押してアプリケーションを終了すると、ヒープ全体が割り当て解除されますか? – abtree
はい、ヒットを含めて、アドレス空間全体が処分されます。 –
家を壊す直前にスプリングクリーニングをする必要はありません。アプリの終了は十分に速く、より速いです。 – PeyloW