Сбой drawWithRect с точкой останова исключения в iOS 8 (не происходит сбой без точки останова исключения)

С праздником iPhone всех! Я надеюсь, что всем удалось достать один.

У меня странная проблема. В моем коде у меня есть UITableView и если пользователь выбирает значок электронной почты в UINavigationBar, он делает две вещи:

1) Открывает MFMailComposer

2) Создает PDF в фоновом режиме содержимого UITableView и прикрепляет его к электронной почте

До сих пор это работало очень хорошо в iOS 7. В iOS 8, если я установил точку останова исключения в своем коде и запустил ее на устройстве iOS 8, он потерпит крах, когда я нажму значок электронной почты (iPhone 5s), указывая на код ниже:

    [strheader drawWithRect:CGRectMake(65, -670, 1024, 100) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:headerFont} context:nil];

Это не позволяет мне прыгать или выходить из этой точки останова или делать что-либо, чтобы выяснить, что происходит. Если я удалю точку останова Exception, сбой не произойдет. Если я запускаю приложение на своем устройстве и отключаю устройство от Xcode, запускаю его снова, сбоя нет.

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

В моем коде нет предупреждений. Метод сохранения PDF в электронном письме (который содержит этот код) очень длинный; если это потребуется, я вставлю это сюда, но я не хочу делать этот вопрос дольше, чем нужно.

Если я удаляю точку останова исключения из этой строки и просто устанавливаю обычную точку останова, как и ожидалось, она останавливается в этой точке. Я пробегаю и ошибок нет вообще. Если я пробегаю всю точку останова, он делает то, что ему нужно, а затем показывает MFMailComposer в приложении. Так что на самом деле это не "сбой", но у точки прерывания исключения явно есть проблема.

Как я могу узнать, ПОЧЕМУ это терпит крах? Что еще более важно, как я могу это исправить? (который, вероятно, будет отвечать только после получения ответа на первый вопрос).

0 ответов

Другие вопросы по тегам