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]()
- Измените Исключения только на
Objective-C
.
![enter image description here]()
Ответ 2
Я начал видеть то же поведение в своем приложении, используя инициализацию сокращенного словаря @{ ...: ... }
в функции willFinishLaunchingWithOptions
.
Проблема была решена путем замены вместо нее dictionaryWithObjectsAndKeys
. Я не уверен, что это было характерно для моего случая или если у компилятора есть какая-то проблема с сокращенным синтаксисом, но стоит проверить, используете ли вы этот синтаксис.