如果我的应用程序崩溃,我该如何保存在userdefaults中

时间:2011-06-07 14:08:46

标签: iphone objective-c xcode ipad crash

在我的Universal-App中,我遇到了一些应用程序崩溃的问题。我无法重现崩溃的原因,所以我想至少让应用程序“保存”,以便它可以再次重新启动,如果它已崩溃。 问题是,如果我的应用程序崩溃,可能会因为一些混乱的用户默认值而无法再次启动。 所以,如果我的应用程序在启动时崩溃后我可以删除我的用户默认值,那么用户至少可以使用该应用程序。

到目前为止我的目标。现在我只需要知道当我的应用程序在启动时崩溃时我如何检测并保存它。

我的第一个目的是在应用崩溃时在用户默认值中设置一个标志,然后,如果设置了标志,则重置用户默认值。但我不知道 - (void)applicationWillTerminate:(UIApplication *)application
将在我的应用程序崩溃时调用。即使它被称为。如何检测它在启动时是否崩溃?

欢迎任何建议。

提前问候和thx Maverick1st

3 个答案:

答案 0 :(得分:6)

每次应用启动时设置标志,正常终止时取消设置标志怎么样?这样你知道它是否已经在应用程序启动时设置,它上次崩溃了。

答案 1 :(得分:4)

异常退出的一个原因是,异常。在这种情况下,依靠能够做任何明智的事情通常不是一个好主意。

而不是试图在崩溃时设置一个标志,这最多是不可靠的,而是在你开始时设置它,然后在正常退出时取消设置它?这样一来,如果你没有清理过的东西,你就会知道,下次你开始的时候就知道了。

答案 2 :(得分:0)

一想法......将您的主要起始代码包装在@Try @Catch块中的app委托中,以处理导致崩溃的异常。在那里执行任何最后一分钟的代码(比如设置你的旗帜)。