Xcode 7: включение точки останова исключений в `main.m`, но приложение работает нормально

Я установил контрольную точку исключения "Все исключения" для моего проекта. В Xcode 7 он загадочно запускается при запуске в main.m, но, похоже, что-то явно не так. При продолжении приложение работает нормально.

Даже запуск проекта в Xcode 6 теперь приводит к срабатыванию этой точки останова.

screenshot of breakpoint

Я не могу понять, что вызывает это. Нити не указывают ничего конкретного в отношении причины.

Возможно, это какая-то проблема с шрифтом в раскадровке или что-то в этом роде? Кто-нибудь знает об исправлении?

ПРИМЕЧАНИЕ. Это исключение С++, а не Objective-C. Возможно, из-за отсутствия шрифтов. Xcode выдает исключение в Main() в iOS 8 с точкой останова всех исключений

Ответ 1

У меня почти идентичная проблема в Xcode 7, начиная с бета-версии 3. Это обходное решение решило это для меня.

Поскольку это исключение С++, вы можете изменить точку останова "Все исключения", чтобы вылавливать только исключения Objective-C. Сделав это, я больше не попал в тайну при запуске, и потому, что я не пишу С++, получаю 99% от значения, на которое указывает точка останова "Все исключения".

Вот как:

  • Перейдите на вкладку точек останова (Вид > Навигаторы > Показать навигатор точек останова или ⌘7).
  • Щелкните правой кнопкой мыши точку останова All Exceptions и "Изменить точку останова..."

edit breakpoint

  1. Измените Исключения только на Objective-C.

enter image description here

Ответ 2

Я начал видеть то же поведение в своем приложении, используя инициализацию сокращенного словаря @{ ...: ... } в функции willFinishLaunchingWithOptions.

Проблема была решена путем замены вместо нее dictionaryWithObjectsAndKeys. Я не уверен, что это было характерно для моего случая или если у компилятора есть какая-то проблема с сокращенным синтаксисом, но стоит проверить, используете ли вы этот синтаксис.