3

重複の可能性:
ARC メモリ リーク

ARC 対応プロジェクトで @autorelease プールを使用できますか。もしそうなら、@autorelease プールを使用する用途は何ですか。プロジェクトがARC対応であっても、メインスレッドのみを処理することがGoogleでわかりました。他のスレッドを作成する場合は、オブジェクトの解放に注意する必要があります。誰でも説明できますか

4

2 に答える 2

3

はい、ARC はデフォルトでメイン スレッドにのみ設定されます。ただし、バックグラウンド スレッド内で利用することもできます。解決策は簡単です。ARC では のセマンティクス@autoreleasepool { }が異なります。実際には、従来の MRC の方法で NSAutoreleasePool オブジェクトを割り当てて解放するのではなく、ARC が呼び出されたトレッド内のオブジェクトを処理するように ARC に指示するだけで、自動解放プール スタイルの効果が得られます。

于 2012-10-30T06:40:35.717 に答える
0

手動メモリ管理から ARC に移行する場合、次のものを置き換えます。

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[pool release];

@autoreleasepool {

    }

理解を深めるために、 NSAutoreleasePoolのドキュメントとAdvanced Memory Management Programming Guideをお読みください。

于 2012-10-30T06:39:43.363 に答える