1

これが私のコード(ARC対応)で、メモリリークが見られます。

この問題を解決するのを手伝ってください。

- (void) setMusic
{      
     /*
     Initialise and set the music for the game.
     */

 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"actionMusic" ofType:@"caf"]];
NSError *error = nil;
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (!error)
{
    _audioPlayer.delegate = self;
    if(_musicFlag)
    {
        [_audioPlayer play];
    }
    [_audioPlayer setNumberOfLoops:INT32_MAX];
}

error = nil;
url =nil;

url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"pew" ofType:@"wav"]];
_moveMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

if (!error)
{
    _audioPlayer.delegate = self;
}

error = nil;
url =nil;


url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Won" ofType:@"wav"]];
_winningMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

if (!error)
{
    _winningMusic.delegate = self;
    [_winningMusic setNumberOfLoops:1];
}

}

これがリークの詳細です ここに画像の説明を入力してください

4

1 に答える 1

0

漏れの答えを見つけました。

このリークはAVAudioPlayer、Apple によってまだ修正されていない基礎クラスによるものです。

したがって、AVAudioPlayer基礎クラスの使用はリークにつながります。

詳細については、このリンクを確認してください

于 2013-02-26T11:21:46.090 に答える