在Objective-C中退出并处理致命错误的最佳方法是什么?

Chr*_*ill 5 objective-c

假设我的应用程序做了一些无法恢复的事情(这种情况从未发生过,对吧?:P).我应该使用exit()吗?我应该使用NSAssert(false,@"Foo")吗?我应该以某种方式扔东西吗?谷歌的硬答案.

phe*_*cks 0

我认为如果发生不好的事情,你不应该强制退出你的应用程序,因为这会让用户感到烦恼 - 他们不会知道出了什么问题。此外,如果这种情况很常见,Apple 可能会拒绝您的应用程序。

相反,您应该弹出一个对话框来说明出了什么问题(例如写入数据库时​​出错,请重试)。

如果您的应用程序最终处于完全损坏的状态,您应该重新设计您的应用程序。您能举一个“不可恢复”的例子吗?

  • 明确地使应用程序崩溃是一个有效的选择。参见“快速失败”。即使您的数据已损坏,只是试图不惜一切代价保持应用程序运行是愚蠢的。应该有一种方法可以优雅地退出您的应用程序。 (2认同)