Jedes Mal, wenn ich die App lade, stoppt sie, als hätte ich einen Haltepunkt in dieser Zeile festgelegt:
self.audioPlayer =
[[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName]
error:&outError] autorelease];
Es gibt keinen Haltepunkt über oder irgendwo in der Nähe dieser Linie. Es passiert nur, wenn ich die App im Debug-Modus starte und nach dem Haltepunkt nichts abstürzt. Die App funktioniert so, als wäre nichts passiert, wenn ich auf "Programmausführung fortsetzen" klicke.
Dies ist die loadData-Methode, die aufgerufen wird mit initWithData
:
-(NSData*)loadData:(NSString*)fileName
{
NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
dataPath = [dataPath stringByStandardizingPath];
NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
return data;
}
Die loadData-Funktion scheint einwandfrei zu funktionieren. Die angeforderte MP3-Datei wird nach dem Haltepunkt problemlos geladen und wiedergegeben.
Hast du eine Ahnung, was ich falsch mache?
EDIT: Ich habe eine Rückverfolgung ausgeführt, als sie am Haltepunkt stoppt. Dies war die Ausgabe:
(lldb) bt * Thread # 1: tid = 0x1c03, 0x30df1724 libc ++ abi.dylib`__cxa_throw, Stoppgrund = Haltepunkt 1.2 Frame # 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 Frame # 2: 0x36403b0e AudioToolbox`ID3ParserOpen + 142 Frame # 3: 0x3635bd16 AudioToolbox`MPEGAudioFile :: ParseID3Tags () + 58 Frame # 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 Frame # 6: 0x36316480 AudioToolbox`AudioFileOpenWithCallbacks + 612 Frame # 7: 0x31f4c1ec AVFoundation`- [AVAudioPlayer initWithData: Fehler:] + 120
"LÖSUNG": Es stellt sich heraus, dass das Problem verschwindet, wenn ich den Ausnahme-Haltepunkt für alle Ausnahmen deaktiviere und den Haltepunkt nur für Objective-C-Ausnahmen verwende. Das Problem, dass die Zuweisung von AVAudioPlayer eine C ++ - Ausnahme auslöst, wird dadurch jedoch nicht gelöst.