Фон
Я использую UKCrashReporter в своем приложении.
Я установил свой собственный Uncaught
Обработчик исключений.
Я настраиваю
managedObjectContext объекта
activeItemController в
applicationDidFinishLaunching (1)
Проблема
Если метод managedObjectContext выдает исключение, диалоговое окно средства аварийного оповещения вспыхивает только до сбоя приложения, поэтому пользователь никогда не получает сообщения о сбое.
Я хочу, чтобы мое приложение продолжало работать только после сообщения о сбое, а не при отображении окна.
Что я пробовал
Если UKCrashReporterCheckForCrash ()
были объективным методом С, я полагаю
Я мог позвонить
performSelectorOnMainThread: waitUntilDone: ДА
но это не так.
Я посмотрел на другой стек
Переполнение вопросов о использовании
Условные блокировки для приостановки приложений,
но я не могу понять, как бы я это использовал
для функции C.
Как бы я поступил так хорошо? Есть ли у людей какие-либо советы
для меня? Любых ответов было бы много
оценили.
Код
// In app delegate
-(void)applicationWillFinishLaunching:(NSNotification *)aNotification {
UKCrashReporterCheckForCrash(); // A C function which then creates a window if
// it detects a crash has happened.
}
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[activeItemController setMoContextDisk:[self managedObjectContext]];
[activeItemController setMoContextMemory:[self managedObjectContextMemory]];
}
Обновление 1
Меня попросили предоставить более подробную информацию о том, что я пытаюсь сделать, так что вот так.
Ошибка, вызвавшая такое мышление, была исключением при объединении managedObjectModels. Мое приложение зацикливалось на выводе на консоль «Uncaught исключения» каждые несколько миллисекунд.
И когда я установил обработчик необработанных исключений до того, как возникло это исключение, я получил описанное поведение - мое приложение запускалось бы, отображало диалоговое окно отчета о сбое, а затем продолжало загружаться и снова падать.
Сводка. Я хочу обрабатывать ошибки, возникающие при запуске.
(1) Я не использую привязки для этого, так как я думал, что привязки сделают тестирование класса более проблематичным.