如何解决AVAudioPlayer-iphonesdk中的内存泄漏问题。这里。我将给出我的代码..内存泄漏在我的代码中,如何解决它..
.h文件
AVAudioPlayer *titlescreenaud;
.m文件
titlescreenaud=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"TitleScreen_BgmAudio" ofType:@"mp3"]] error:NULL];//***Memory leaks on here......***
titlescreenaud.numberOfLoops=-1;
[titlescreenaud play];
完成声音后
-(void)finish
{
[titlescreenaud stop];
[titlescreenaud release];
titlescreenaud=nil;
}
如何释放avaudioplayer请帮帮我.......
答案 0 :(得分:0)
titlescreenaud=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"TitleScreen_BgmAudio" ofType:@"mp3"]] error:NULL];//***Memory leaks on here......***
我假设Instruments指示存在内存泄漏。这意味着在该行上分配的东西尚未发布。实际泄漏可能在其他地方,很可能是因为缺少release
。
您的finish
方法真的被调用了吗?您是release
中的titlescreenaud
dealloc
吗?
此处没有足够的代码可以专门查明问题。
答案 1 :(得分:-1)
如果您在ViewDidLoad中分配AVAudioPlayer对象,则不会遇到问题。但是,如果您正在重复调用方法并且已经分配了对象,那么它总是会为同一个对象分配内存。您可以在释放内存之前检查retainCount。