iOS:exit(0)是否会生成崩溃报告,如果是,那么替代方案是什么?

时间:2011-12-12 18:57:21

标签: ios ipad exit

我听说仅使用exit()甚至提供零参数将导致iOS生成崩溃报告。但在某些情况下,最好执行退出(0)。那么,如果不允许exit(),退出应用程序的可接受方式是什么? 感谢。

4 个答案:

答案 0 :(得分:1)

A)不要将exit作为正常申请流程的一部分。这肯定会让您的应用从应用商店中被拒绝。

和B)如果你想要一个回溯和/或崩溃报告,抛出异常,生成的崩溃日志将显示异常发生的位置(带有回溯)。

我觉得你的问题只是关于退出你的应用程序。您不应该以编程方式退出应用程序,而是让用户在他/她决定是时候杀死应用程序时退出。在任何情况下,当您的应用程序完成它正在执行的任何操作时,您可以做的一件好事就是在应用程序进入后台状态时释放所有可用资源。 Here's a related question that might help you out

答案 1 :(得分:1)

申请退出自己没有可接受的方法。来自iOS Human Interface Guidelines

  

不要以编程方式退出

     

永远不要以编程方式退出iOS应用程序,因为人们倾向于将其解释为崩溃。但是,如果外部环境阻止您的应用程序按预期运行,您需要告知用户有关情况并解释他们可以采取的措施。根据应用程序故障的严重程度,您有两种选择。

     

显示描述问题的有吸引力的屏幕并建议更正。屏幕提供反馈,向用户保证应用程序没有任何问题。它让用户掌控,让他们决定是否要采取纠正措施并继续使用您的应用程序或按主页按钮并打开其他应用程序

     

如果只有部分应用程序的功能无效,则在人们激活该功能时显示屏幕或警报。仅当人们尝试访问无法正常运行的功能时才显示警报

答案 2 :(得分:0)

为什么要以编程方式退出/崩溃您的应用?如果你告诉我们更多关于你想做什么的事情,人们可以想到一个解决方法

答案 3 :(得分:0)

如果您希望自己的应用不再位于前台,请让它向Safari发送有效的网址。如果您不希望自己的应用程序在Safari到达前台时处于后台,请在应用程序的plist中设置UIApplicationExitsOnSuspend键。如果“以某种方式”应用程序完整性检查失败(接收验证代码的校验和错误等),那么可能会丢弃一些内存池和/或您自己的调用堆栈,并让操作系统处理它。