1

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

定义:

@property(nonatomic, retain) SoundPlayer* soundPlayer;

代码:

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

信息:

Potential leak of an object allocated on line
4

2 回答 2

0

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

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

或者,如果您已经显式声明了一个实例变量来支持该属性,那么推荐的代码是

-(void) dealloc
{
    [soundPlayer release];
    [super dealloc];
}
于 2012-04-18T14:39:41.280 回答
0

静态分析器充满误报;您的代码没有任何问题。您可以更简洁并使用以下内容摆脱消息:

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

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

于 2012-04-18T13:47:02.297 回答