私が正しければ、自動解放されたオブジェクトのプールの解放は、実行ループと関係があります。その「実行ループ」が何であるかはほとんどわかりませんが、私の質問は、オブジェクトが解放される可能性があるかどうかです。メソッドの終わりに達する前に?
1 に答える
3
ほとんどのフレームワークと同様に、Cocoaには継続的に実行されるループがあり、ユーザー入力やシステムイベントなどに応じてイベントをディスパッチします。ほとんどのコードは、このループ内で実行されてイベントを処理します。このループは実行ループです。
実行ループは、リーチループの終わりに最も外側の自動解放プールを排出します。したがって、自動解放されたオブジェクトは、メソッド(およびその他)が終了するまで実行ループが終了しないため、メソッドの期間中は存続することが保証されます。
自動解放されたオブジェクトをより速く要求する場合、たとえば、多数の自動解放されたオブジェクトを作成するタイトな内部ループがある場合は、独自の自動解放プールを設定し、各内部ループの最後でそれらを排出できます。
于 2010-04-24T15:37:51.563 に答える