1

あなたは@autoreleaseをいつ使用するかについて、とても多くのstackoverflowディスカッションを読んでいます。あなたのアプリケーションや副作用これについてあなたは@autoreleaseプールを作成する必要がないことを説明し、 はまた、私はGCDGCDを使用している場合は、@autoreleaseプールを作成する必要があります

にここにそうしてくださいいずれかを使用していたときに、外部@autorealeaseプールを作成する必要がある必要があり、そのシナリオの@autoreleaseについて私を修正します。

+0

[This(http://stackoverflow.com/a/12587187/3541063)はあなたの質問に答えます。 – werediver

+0

私の回答をiOS 10+ [こちら](https://stackoverflow.com/a/47543034/285659)用に更新しました – ribeto

答えて

0

ブロックがObjective-Cオブジェクトを複数作成する場合は、ブロックのコードの一部を@autoreleaseブロックに囲んで、それらのオブジェクトのメモリ管理を処理したい場合があります。

GCDディスパッチキューには独自の自動解放プールがありますが、これらのプールがいつ排水されるかは保証されません。アプリケーションにメモリが制限されている場合は、独自の自動解放プールを作成することで、自動解放されたオブジェクトのメモリをより定期的に解放することができます。

したがって、いくつかのオブジェクトだけを割り当てる場合は心配しないでください。しかし、かなりの数のオブジェクトを割り当てている(そして、メモリ制約のある環境をターゲットにしているので)ので、排水プール。

関連する問題