Chaque fois que je charge l'application, elle s'arrête comme si j'avais défini un point d'arrêt sur cette ligne:
self.audioPlayer =
[[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName]
error:&outError] autorelease];
Il n'y a pas de point d'arrêt au-dessus ou à tout endroit près de cette ligne. Cela ne se produit que lorsque j'exécute l'application en mode débogage et que rien ne se bloque après le point d'arrêt. L'application fonctionne car rien ne s'est passé lorsque je clique sur "Continuer l'exécution du programme".
Il s'agit de la méthode loadData, qui est appelée avec initWithData
:
-(NSData*)loadData:(NSString*)fileName
{
NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
dataPath = [dataPath stringByStandardizingPath];
NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
return data;
}
La fonction loadData semble fonctionner correctement. Le fichier mp3 demandé est chargé et lu sans aucun problème après le point d'arrêt.
Avez-vous une idée de ce que je fais mal?
EDIT: J'ai exécuté une trace arrière quand il s'arrête au point d'arrêt. C'était le résultat:
(lldb) bt * thread # 1: tid = 0x1c03, 0x30df1724 libc ++ abi.dylib`__cxa_throw, raison de l'arrêt = point d'arrêt 1.2 cadre n ° 0: 0x30df1724 libc ++ abi.dylib`__cxa_throw frame # 1: 0x36403a24 AudioToolbox`ID3ParserHandle :: ID3ParserHandle (void *, long (*) (void *, unsigned long, unsigned long, unsigned long, void **, unsigned long *)) + 452 cadre n ° 2: 0x36403b0e AudioToolbox`ID3ParserOpen + 142 image n ° 3: 0x3635bd16 AudioToolbox`MPEGAudioFile :: ParseID3Tags () + 58 image n ° 4: 0x3635b9aa AudioToolbox`MPEGAudioFile :: ParseAudioFile () + 26 frame # 5: 0x3631723e AudioToolbox`AudioFileObject :: DoOpenWithCallbacks (void *, long (*) (void *, long long, unsigned long, void *, unsigned long *), long (*) (void *, long long, unsigned long , void const *, unsigned long *), long long (*) (void *), long (*) (void *, long long)) + 166 image n ° 6: 0x36316480 AudioToolbox`AudioFileOpenWithCallbacks + 612 image n ° 7: 0x31f4c1ec AVFoundation`- [AVAudioPlayer initWithData: erreur:] + 120
"SOLUTION": Il s'avère que si je désactive le point d'arrêt d'exception pour toutes les exceptions et n'utilise que le point d'arrêt pour les exceptions Objective-C, le problème disparaît. Mais cela ne résout pas le problème que l'allocation d'AVAudioPlayer lève une exception C ++.