2012-04-18 17 views
1

まれなメッセージが表示されています。初期化時のメモリリークメッセージ

Deffinition:

@property(nonatomic, retain) SoundPlayer* soundPlayer; 

コード:

SoundPlayer *soundPlayerTemp = [[SoundPlayer alloc] init]; 
self.soundPlayer = soundPlayerTemp; 
[soundPlayerTemp release]; 

メッセージ:

Potential leak of an object allocated on line 
+0

です:あなたのような何かを持っている必要がありますか? – CarlJ

答えて

0

静的アナライザは、偽陽性のいっぱいです。あなたのコードには何も問題はありません。

self.soundPlayer = [[[SoundPlayer alloc] init] autorelease]; 

かも優れた選択肢であるARCに切り替えることで:あなたは、より簡潔で、次のメッセージを取り除くことができます。

+0

円弧とは何ですか? :O – Caipivara

+0

@Daniel Automatic Reference Counting、IOS5(およびそれ以降のバージョンの4.x)の自動保持/解放 –

+0

スタティックアナライザは、元のコードビットのメモリリークにフラグを立てません。何か他のことが起こっているに違いありません。 – JeremyP

0

問題の原因としては、deallocメソッドでプロパティを解放しないことが考えられます。あなたはSoundPlayerのコードを投稿することができ

-(void) dealloc 
{ 
    self.soundPlayer = nil; 
    [super dealloc]; 
} 

それとも、あなたが明示的にプロパティをバックアップするインスタンス変数を宣言している場合は、推奨のコードが

-(void) dealloc 
{ 
    [soundPlayer release]; 
    [super dealloc]; 
} 
関連する問題