初始化时内存泄漏消息

时间:2012-04-18 13:44:42

标签: objective-c memory-leaks

我收到一条罕见的信息,发生了什么事?

Deffinition:

@property(nonatomic, retain) SoundPlayer* soundPlayer;

代码:

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

消息:

Potential leak of an object allocated on line

2 个答案:

答案 0 :(得分:0)

静态分析仪充满误报;你的代码没有任何问题。您可以更简洁,并使用以下内容删除该消息:

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

或者切换到ARC,这也是一个很好的选择。

答案 1 :(得分:0)

问题的最可能原因是您没有在dealloc方法中释放该属性。你应该有类似的东西:

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

或者,如果您已显式声明实例变量以支持该属性,则建议的代码为

-(void) dealloc
{
    [soundPlayer release];
    [super dealloc];
}