1

UIViewController の self.view について質問があります。

まず、私のアプリでは、すべてがプログラムで作成されます。通常、loadView メソッドで self.view を作成します。

self.view = [[UIView alloc]initWithFrame:SCREEN_FRAME]autorelease]; // SCREEN_FRAME is a constant

この時点で、self.view の保持回数は 1 です。

だから、私の質問は、ビュー コントローラーを使い終わったら、self.view を解放する必要がありますか? もしそうなら、どこでそれを解放すればよいですか?

事前にどうもありがとう:)

4

3 に答える 3

3

これは、UIViewController の実装によって行われ[super dealloc]ます。dealloc メソッドを呼び出すようにしてください。

于 2010-07-26T13:25:58.897 に答える
0

これを読んだ人の参考までに、上記の答えは正確ではありません。self.view は alloc、retain、および autorelease と呼ばれ、保持カウントの合計は 1 です。retain 呼び出しは、retain プロパティとドット構文に由来します。

したがって、リリースする必要がありますが、willcodejavaforfood が指摘するように、dealloc のスーパー実装がそれを行います。

ありがとう

于 2011-12-05T17:07:39.273 に答える
0

self.view が追加され、自動解放プールが追加され、プールが解放されるとオブジェクトが解放されます。明示的にリリースする必要はありません。オブジェクトをプールに追加して手動でリリースすると、例外 double dealloc が発生します (オブジェクトが 2 回リリースされるため)。

于 2010-07-26T14:39:03.603 に答える