0

多くの自動解放されたオブジェクトを使用して独自のスレッドを実装していると考えてください。はい/いいえの場合、このシナリオで自動解放プールを使用することは必須ですか?

4

2 に答える 2

4

Cocoa の内部では自動解放プールが存在することが想定されており、存在しない場合はメモリ リークが発生するため、作成するスレッドには必ず自動解放プールを配置する必要があります。

Cocoa は、利用可能な自動解放プールがあることを常に期待しています。プールが使用できない場合、自動解放されたオブジェクトは解放されず、アプリケーションでメモリ リークが発生します。プールが利用できないときに自動解放メッセージを送信すると、Cocoa は適切なエラー メッセージをログに記録します。


Objective-C フレームワークでリンクするアプリケーションは、通常、各スレッドに少なくとも 1 つの自動解放プールを作成する必要があります。

于 2012-06-14T19:35:30.877 に答える
3

自動解放されたオブジェクトが 1 つであっても必須です。そうしないとリークするためです。

于 2012-06-14T19:36:13.557 に答える