怎么做我暂停我的应用程序,直到一个崩溃的报告已经提交了?
-
11-09-2019 - |
题
背景
我使用的UKCrashReporter在我的应用程序。
我已经安装了我自己的未捕获的 异常的处理程序。
我设置的 managedObjectContext的对象 activeItemController在 applicationDidFinishLaunching(1)
的问题
如果managedObjectContext方法引发的一个例外,崩溃的记者对话框只有闪光之前的应用程序的崩溃,并使用户从来没有得到报告的崩溃。
我想我应用程序来继续只 后 崩溃已经报道的,不然的窗口。
我已经试过了
如果UKCrashReporterCheckForCrash() 是一个目C的方法,我猜 我可以打电话 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.我的程序被抓住了一个循环印刷"未捕获的例外",以控制台每隔几毫秒。
当我安装的未捕获的例外处理程序之前这种异常的事情发生了,我会得到所描述的行为-我应用程序将火,显示崩溃报告简要对话,然后继续负荷而崩溃的。
摘要-我想要能够处理错误的,这发生在启动时。
(1)我不是使用绑定要做到这一点,因为我认为绑定将使测试的类更大的问题。
解决方案
我认为你的问题是与思考它作为"暂停"。认为它更象是一个不同的初始UI状态。你试图阻止的运行环将防止任何互动的窗口。嗯,是的互动。:-)
你最好的赌注是显示你主要UI(和连接数据来源,等等)只有如果"我促使用户提出一个崩溃的报告"方法说"不,来吧,开始正常".否则,展示你的窗口,当用户发送或拒绝发送报告,靠近窗口并且问你的应用控制器的继续正常启动的。
我看着UKCrashReporterCheckForCrash()它不会出现创建一个窗口的任何种类。它仅仅提交的崩溃。你能描述一下你在做什么更多的细节?