Objective c AVAudioPlayer正在泄漏,我应该在哪里释放它??

Objective c AVAudioPlayer正在泄漏,我应该在哪里释放它??,objective-c,memory-leaks,avaudioplayer,Objective C,Memory Leaks,Avaudioplayer,我正在尝试将background.mp3文件作为我的游戏播放文件来播放,效果很好 但它正在泄漏内存 @interface slots2ViewController : UIViewController <AVAudioPlayerDelegate> { AVAudioPlayer *PlayBack; } @property(nonatomic, retain) AVAudioPlayer *PlayBack ; 内存泄漏仪器显示[self.PlayBack prepareToP

我正在尝试将background.mp3文件作为我的游戏播放文件来播放,效果很好 但它正在泄漏内存

@interface slots2ViewController : UIViewController <AVAudioPlayerDelegate>
{
 AVAudioPlayer *PlayBack;
}
@property(nonatomic, retain) AVAudioPlayer *PlayBack ;
内存泄漏仪器显示[self.PlayBack prepareToPlay]是100%泄漏点 每当我更改主题时,我都会调用LoadnPlaySound。
我还需要释放self.PlayBack吗?如果是,则代码看起来很好。你是否正在释放self.Playbackin-dealloc?@miamk我正在做的是,当我更改游戏主题时,我调用-LoadnPlaySound方法,那么我是否需要释放self.Playback in-dealloc?嗯,你正在创建一个带有保留策略的属性并合成它,所以你必须释放它。另外,在为不同的文件分配新文件之前,我会在播放器上调用stop。如果您在模拟器中使用泄漏,请忽略在那里看到的所有内容。在设备上测试。我是说你必须在-dealloc中释放它;您可以在-LoadnPlaySound中停止播放机,只需在分配新播放机之前开始操作即可(但在停止之前,您应该使用if语句检查它是否已经存在)。
@synthesize PlayBack;

-(void)LoadnPlaySound
  {


NSString *SubDir = [NSString stringWithFormat:@"AudioFiles/Theme%d",SlotId];
NSURL* file_url2 = nil;

file_url2 = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"background"ofType:@"mp3" inDirectory:SubDir ]];

AVAudioPlayer* TmpPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file_url2 error:nil];
self.PlayBack = TmpPlayer;
self.PlayBack.delegate = self;
[TmpPlayer release];
[self.PlayBack prepareToPlay];
[self.PlayBack play];
  [release file_url2];

}


-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)ThePlayer successfully:(BOOL)flag
 {
   [self.PlayBack play];
 }