Mỗi lần tôi tải ứng dụng nó dừng lại như thể tôi đã thiết lập một breakpoint trên dòng này:AVAudioPlayer ném breakpoint trong chế độ gỡ lỗi
self.audioPlayer =
[[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName]
error:&outError] autorelease];
Không có breakpoint trên hoặc bất cứ nơi nào gần dòng này. Nó chỉ xảy ra khi tôi chạy các ứng dụng trong chế độ gỡ lỗi và không có gì treo sau breakpoint. Ứng dụng hoạt động như không có gì xảy ra khi tôi nhấp vào "Tiếp tục thực hiện chương trình".
Đây là phương pháp loadData, được gọi với initWithData
:
-(NSData*)loadData:(NSString*)fileName
{
NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
dataPath = [dataPath stringByStandardizingPath];
NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
return data;
}
Chức năng loadData dường như làm việc tốt. Tệp mp3 được yêu cầu được tải và phát mà không gặp bất kỳ sự cố nào sau điểm ngắt.
Bạn có biết tôi đang làm gì sai không?
EDIT: Tôi đã chạy ngược lại khi dừng tại điểm ngắt. Đây là kết quả:
(lldb) bt * thread #1: tid = 0x1c03, 0x30df1724 libc++abi.dylib`__cxa_throw, stop reason = breakpoint 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:error:] + 120
"GIẢI PHÁP": Hóa ra, nếu tôi tắt breakpoint ngoại lệ cho tất cả các trường hợp ngoại lệ và chỉ sử dụng breakpoint cho trường hợp ngoại lệ Objective-C vấn đề biến mất. Nhưng nó không giải quyết được vấn đề rằng việc phân bổ AVAudioPlayer ném một ngoại lệ C++.
tôi đã có vết đống cùng. Vô hiệu hóa điểm ngắt "Tất cả ngoại lệ" khiến nó không xảy ra đối với tôi. – makdad