私はiPhone開発者です。アプリケーションで ARC を使用しています。私はオブジェクトを割り当てています。その使用が終わったら、「nil」を割り当てます。メモリを解放するために他に何かする必要がありますか?
また、ARCでガベージコレクタを明示的に呼び出す方法はありますか? また、ARC でメモリを解放するタイミングを決定する方法はありますか?
私はiPhone開発者です。アプリケーションで ARC を使用しています。私はオブジェクトを割り当てています。その使用が終わったら、「nil」を割り当てます。メモリを解放するために他に何かする必要がありますか?
また、ARCでガベージコレクタを明示的に呼び出す方法はありますか? また、ARC でメモリを解放するタイミングを決定する方法はありますか?
ARC はガベージ コレクターではありません。コンパイラがユーザーに代わって参照カウント操作を追加する、手動の参照カウント管理と考えてください。
できる良いことの 1 つは、自動解放プールを作成することです。コンパイラは保持、解放、および自動解放メッセージを追加するため、オブジェクトは最終的に自動解放プールになります。検討:
@autoreleasepool {
..create several temporary objects...
} // << now the autorelease pool is popped, and delayed release messages are sent
自動解放プールの作成は非常に安価であり、実際にメモリ消費を抑え、オブジェクトのリソースを迅速に返すことができます。
ARC にはガベージ コレクションがないため、呼び出すものはありません。オブジェクトのスコープと所有権を制御すると、ARC がメモリの使用を管理します。
参照に「nil」を割り当てるか、参照を範囲外にする以外に考慮すべきことは、オブジェクトを保持する必要があるオブジェクトへの追加の参照 (NSArray への配置など) があるかどうかだけです。 .