2011-01-04 8 views

答えて

12

はい、そうでない場合は、自動解放

ChooseDateView *nextController = [[[ChooseDateView alloc] initWithNibName:@"ChooseDateView" bundle:nil] autorelease]; 
2

割り当てられたメモリが解放されそうか、[nextControllerリリース]呼び出す必要がありますか?

+1

はい。すべてのalloc/retainはrelease/autoreleaseとペアにする必要があります。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447 –

1

はいとしてオブジェクトを作る

[nextController release] 

を呼び出すことがneccessaryです。

あなたが所有しているオブジェクトは、リリースまたは自動リリースするだけです。あなたは名前が 「のalloc」または「新しい」または で始まる「コピー」(例えば、アロケーション、 でnewObject、またはmutableCopy)を含むメソッドを使用して作成し 場合

あなたは、オブジェクトの所有権を取得し、または にメッセージを送信してください。

リリースまたは自動リリースを使用して にオブジェクトの所有権を放棄します。 autoreleaseは、「 メッセージを今後送信します」( を理解するには、「Autorelease プール」を参照してください)。

Memory Management Rules

0

あなたはメモリが割り当てられているので、あなたは、オブジェクトの所有者です。また、割り当て後、そのオブジェクトはpushViewControllerを使用してプッシュされます。したがって、オブジェクトを安全に解放することができます。 あなたがオブジェクトを所有しているので、これは実行する必要があります。 また、自動リリースすることもできます。

関連する問題