AVAudioPlayer выдает точку останова в режиме отладки

Каждый раз, когда я загружаю приложение, он останавливается, как будто я установил точку останова в этой строке:

self.audioPlayer = [[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName] error:&outError] autorelease]; 

Там нет точки останова выше или в любом месте рядом с этой линией. Это происходит только тогда, когда я запускаю приложение в режиме отладки и ничто не падает после точки останова. Приложение работает, поскольку ничего не произошло, когда я нажимаю «Продолжить выполнение программы».

Это метод loadData, который вызывается с помощью initWithData :

 -(NSData*)loadData:(NSString*)fileName { NSString *dataPath = [self.path stringByAppendingPathComponent:fileName]; dataPath = [dataPath stringByStandardizingPath]; NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ]; return data; } 

Функция loadData работает нормально. Запрашиваемый mp3-файл загружается и воспроизводится без проблем после точки останова.

Вы знаете, что я делаю неправильно?

EDIT: Я побежал назад, когда он остановился в точке останова. Это был результат:

 (lldb) bt
 * thread # 1: tid = 0x1c03, 0x30df1724 libc ++ abi.dylib`__cxa_throw, stop reason = точка останова 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
     кадр # 6: 0x36316480 AudioToolbox`AudioFileOpenWithCallbacks + 612
     frame # 7: 0x31f4c1ec AVFoundation`- [AVAudioPlayer initWithData: error:] + 120

«РЕШЕНИЕ»: Оказывается, если я отключу контрольную точку исключения для всех исключений и использую только точку останова для исключений Objective-C, проблема исчезнет. Но это не решает проблему, что выделение AVAudioPlayer вызывает исключение C ++.

Добавьте свою контрольную точку исключения и отредактируйте тип исключения с «Все» на «Исключения Objective-C»

Некоторые классы в AudioToolbox генерируют регулярные исключения C ++. Вы можете отфильтровать их таким образом.

AVAudioPlayer и AVAudioRecorder будут генерировать исключения, некоторые из них. Они обрабатываются внутри игроков, но если у вас есть точка останова для «All Breakpoints» (т.е. Exception: All, Break: On Throw), вы поймаете эти исключения. Если вы продолжите выполнение этих действий, приложение будет продолжать работать нормально и вообще не будет аварийно завершено.

Единственное решение, к которому я придумал, – это нажать на панель точек останова в Breakpoint Navigator, отключив эту точную точку останова, а работа с ней отключена.

Когда / если приложение когда-либо срабатывает с помощью исключенного исключения, я cmd-6, включаю эту точку останова и повторяю и выполняю все, что я сделал, когда он разбился.

Изменить: настройка на «Objective-C exceptions», очевидно, как это сделать. См. Выше ответ!

Вот скриншот, показывающий, как я исправил эту ошибку. Я не уверен, что это так, как говорят выше, но я предполагаю, что это похоже.

  1. Перейдите к навигатору Breakpoint в Xcode.
  2. Control-щелкните по строке «Все исключения».
  3. Выберите параметр «Изменить точку останова …».
  4. Измените Exception из All в Objective-C .

введите описание изображения здесь

Спасибо, огромное спасибо, спасибо !. Недавно мы столкнулись с той же проблемой. Оказывается, mp3-файлы, на которые он метался, не имели действительного тега ID3 и запускали их через приложение, такое как Tagr, исправляли их прямо вверх!

Попробуйте установить AVAudioPlayer как переменную класса!

  • Как сохранить текущий элемент панели вкладок, когда пользователь завершает работу и перезагружается в этот элемент при перезапуске?
  • Прогресс AFNetworking
  • Загрузить изображение на сервер с устройства iOS
  • Как избежать смешивания цветов при рисовании прямоугольников?
  • Как передать аргумент в @selector?
  • Как выйти из приложения iPhone с «преднамеренным исключением»?
  • Многострочный UILabel без переноса слов?
  • проверка доступности на определенной странице в URL-адресе
  • используя navigator.geolocation в UIWebView с локальным html-файлом
  • UIStatusBarStyleBlackTranslucent недоступен на этом устройстве
  • UITableView delete / add row вызывает CoreData: серьезная ошибка приложения, если в MasterView для SplitViewController был выбран другой объект
  • Interesting Posts

    Набрать номер из приложения iOS

    dyld: lazy symbol binding failed: Символ не найден: _clock_gettime

    Почему SecKeyEncrypt возвращает paramErr (-50) для строк ввода более 246 байтов?

    как динамически повысить динамическую высоту UIlabel в быстром?

    Нарисуйте прямую линию двумя пальцами

    Как я могу рассчитать покрытие кода статической библиотеки в XCode 5, используя проект, который ссылается на эту статическую библиотеку?

    как определить направление жестов пальца?

    Как получить IP-адрес связанной точки доступа на устройстве iOS

    Я не могу получить этот простой псевдоним LLDB для работы

    Интерфейс Builder: что такое UIView Layout iOS 6/7 Deltas?

    Просмотр шаблона пользовательского интерфейса – общие элементы пользовательского интерфейса во всех сценариях приложения iOs?

    Скорость CLLocation

    Ток обновления Firebase

    Почему я могу отправлять сообщения на освобожденный экземпляр NSArray?

    Что означает это предупреждение: «установка первого представления ответчика в виде коллекции, но мы не знаем его тип (cell / header / footer)»

    Давайте будем гением компьютера.