背景

  • 我使用的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()它不会出现创建一个窗口的任何种类。它仅仅提交的崩溃。你能描述一下你在做什么更多的细节?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top