这是以编程方式退出iPhone应用程序的有效理由吗?

时间:2011-07-01 15:53:23

标签: iphone hig

我知道这个问题已被多次询问,我们已将这个链接作为Apple的回答: http://developer.apple.com/library/ios/#qa/qa1561/

然而,最近,我在下面遇到了这个案例。除了直接使用'exit(0)'之外,我没有看到任何其他选项。

我有一个应用程序,可以从我的iPhone的相机或麦克风收集数字数据。 然后我设计了一个按钮,其中显示“保存并退出”,因为这是我的应用程序非常常见的情况。

如果没有以编程方式退出我的应用程序的功能,我只能有一个愚蠢的“保存”按钮。然后我的用户必须单击两次(1.“保存”按钮,然后2.“主页”按钮)以获得相同的结果 - a.k.a这两个动作按顺序排列。

然后我意识到,这可能是我设计的一个缺陷。因此我改变了这种方式。

我删除了“保存退出”按钮,而是在底部添加了一个注释“使用HOME按钮保存”和“保存”。出口'。我试图从用户的操作中捕获退出信号,然后在之前进行SAVE。

通过这样做,用户可以简单地使用本机HOME按钮进行“保存和退出”。

然而,这种解决方案并不完美。

如果我的应用程序需要很长时间才能保存数据,那么在用户点击“HOME”按钮后,iOS仍有机会杀死我的应用程序。然后用户可能会丢失他们的数据,恕不另行通知!

如果我可以通过编程方式退出,我可以先尝试'保存'。如果'SAVE'失败,我有足够的时间通知我的用户或完成所需的所有补救工作。

您是否认为这是在我的应用中使用'exit(0)'而不被拒绝的有效理由?

2 个答案:

答案 0 :(得分:2)

不,我非常怀疑Apple会让你有一个“保存并退出”按钮。它完全违背了平台惯例,并且直接与Apple的HIG相矛盾。

在哪种情况下,您认为在iOS提供应用程序清理的时间内,您将拥有无法保存的数据?你真的测量过它并发现它是一个问题吗?

答案 1 :(得分:1)

为什么不尝试一直自动保存?您可以保存到临时目录,然后在退出时执行文件移动操作。这可能比您当前的保存操作快得多,有时会失败。