2010-05-20 13 views
0

J'utilise ce code pour lire un fichier mp3 différent à chaque appel. La première fois à travers fonctionne très bien. Le deuxième crash, comme indiqué ci-dessous.Deuxième appel à AVAudioPlayer -> EXC_BAD_ACCESS (code affiché, qu'ai-je manqué?)

.h

AVAudioPlayer *player; 
@property (nonatomic, retain) AVAudioPlayer *player; 

.m

-(void)load:(NSURL *)aFileURL { 
if (aFileURL) { 

    AVAudioPlayer *newPlayer = 
    [[AVAudioPlayer alloc] initWithContentsOfURL: aFileURL 
         error: nil]; 

    [aFileURL release]; 
    self.player = newPlayer; // CRASHES HERE EXC_BAD_ACCESS with second MP3a 
    [newPlayer release]; 

    [self.player prepareToPlay]; 
    [self.player setDelegate:self]; 
} 
} 

Je sais que je dois avoir manqué quelque chose, des idées?

Répondre

0
[aFileURL release]; 

Vous ne devriez pas -release l'URL dans -load:, puisque cette fonction n'est pas propriétaire. L'EXC_BAD_ACCESS est probablement dû à la double publication de cette URL.

Essayez d'enlever cette ligne.

+0

Voilà comment vous savez que vous avez regardé l'écran trop longtemps !!! Totalement oublié à ce sujet. Jordan time-to-take-a-break, très apprécié! – Jordan