2

を投影し、私は@autoreleaseプールのように多くのブログを読みましたが、私はまだ客観CまたはiOS開発で、この@autoreleaseプールの概念について明確ではないと思います。なぜとするとき、我々は、IOSに@autoreleasepool使用する必要があります

だから、誰でもこのコンセプトを軽視してください。 誰かが私にその例と@autoreleaseプールの使用が必要な場合は、非常に役に立ちます。

どのように@autoreleaseプールを使用して、それなしでメモリ割り当てを測定できますか。

このトピックについては、重複している可能性があります。

+0

[こちら](http://stackoverflow.com/questions/9086913/objective-c-why-is-autorelease-autoreleasepool-still-needed-with-arc)ARC – byJeevan

+0

iで「Autoreleasepool」が必要な理由を説明しています__autoreleasing [(こ​​れを参照してください)]でマークされているオブジェクトがある場合にのみ便利だと考えてください(http://stackoverflow.com/questions/8862023/in-which-situations-do-we-need-to-write-the- autoreleasing-ownership-qualifier)を使用します。そのような種類のオブジェクトは、あなたのアプリケーションのメインオートリリースプールの終わりに達するときにのみリリースされます。しかし、多くのものが短時間で作成されると、メモリ不足になる可能性があります。そのように自動解放オブジェクトが積み重なると、私はプール@autorelease使用したときにそれを使用していないイム – Fonix

+0

がどのように私は、実用的な例では、メモリの使用率を測定することができますあなたのメモリ不足エラーを与えてはいけないことそのために、しかし、あなたはあなた自身の自動解放プールを必要としないはずの時間の99%は、ARCは通常、非常によく物事の世話をする(あなたはプールが文句を言わないで役立つ自動解放サイクルを保持させる場合を除き)あなたの迅速な応答を – user1374

答えて

-1

Release and Autoreleaseは、メモリ管理に関連する用語です。あなたがオブジェクトを所有しているときはいつでもそれをリリースする責任があります。正しくリリースしなければ、Objective -Cは他のオブジェクトの使用のためにそれを再利用できず、メモリリークが発生します。

オブジェクトを所有する

さまざまな方法のalloc、新しい、あなたはこの事はObjective Cのは、そのオブジェクトを吹いて世話をしますので、それを解放しようとするたびに使用して保持し、コピーします。そのオブジェクトを解放することがわからない場合は、必ず自動解放を行ってください。

あなたは、オブジェクトが正しい方法でリリースされていないオブジェクトの自動解放を行うたびに、それが主な機能でAutoreleasepoolに追加されます。 main関数のAutoreleasepoolは、解放されるべきオブジェクトのスタックを維持し、 "drain"メソッドが呼び出されると、[pool drain]のように1つずつ解放されます。ドレインメソッドは、各イベントループの最後に繰り返し呼び出されます。

+2

素敵なコピー貼り付けhttps://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html – Fonix

+0

答えは質問に答えて、リンクしていないはずです。 – gnasher729

関連する問題