2011-07-27 20 views
0

私は次のような方法があります。返された辞書がオートリリースされているかどうかを知りたいiPhoneメモリ管理

- (NSDictionary *)someMethod { 
    NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];   //did not autorelease it here 

    //------------------------------- 
    //Some code 
    //------------------------------- 
    return (NSDictionary *) myDict; 
} 

注:オブジェクトを目的に合わせて初期化する際に自動解放を追加していません。

答えて

0

myDictがが自動解放されない解放しない自動解放しなければなりません。保持されるだろう。

の返信行を置き換えます。

return [myDict autorelease]; //キャストは不要

そうしないと、漏れが発生する可能性が高くなります。

+0

NSMutableDictionaryを返すと自動的にNSDictionaryに型キャストされますか?メソッドの戻り値の型を参照してください。 – Sahil

+0

NSMutableDictioanryはNSDictionaryのサブクラスなので、キャストは必要ありません。 NSMutableDictioanryはNSDictionaryです(他の方法ではありません)。 – fsaint

0

はいあなたは

return [myDict autorelease];