如何解决AVAudioPlayer-iphonesdk中的内存泄漏问题

时间:2010-12-30 05:58:43

标签: iphone

如何解决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请帮帮我.......

2 个答案:

答案 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。