我正在编程一个iPhone应用程序,我需要强制它退出由于某些用户操作。在清理应用程序分配的内存后,调用什么方法来终止应用程序?


当前回答

我们不能使用exit(0), abort()函数退出应用程序,因为苹果强烈反对使用这些函数。不过,您可以将此函数用于开发或测试目的。

如果在开发或测试期间,有必要终止您的 建议使用应用程序、中止函数或断言宏

请找到这个苹果问答线程以获得更多信息。

由于使用此功能创建印象,应用程序正在崩溃。所以我得到了一些建议,比如我们可以显示警报与终止消息意识到用户关闭应用程序,由于某些功能不可用。

但是iOS人机界面启动和停止应用指南,建议永远不要使用退出或关闭按钮来终止应用。而不是他们建议展示适当的信息来解释情况。

iOS应用永远不会显示关闭或退出选项。人们不再使用 当他们切换到另一个应用程序,返回主屏幕,或放 他们的设备处于睡眠模式。 永远不要以编程方式退出iOS应用程序。人们倾向于这样解释 作为一个崩溃。如果有什么东西阻止你的应用程序运行 有意的,你需要告诉用户情况和解释什么 他们可以做些什么。

其他回答

去你的信息。plist并检查关键“应用程序不运行在后台”。这一次,当用户单击home按钮时,应用程序将完全退出。

嗯,如果你的应用需要网络连接,你可能“不得不”退出应用程序。你可以显示一个警告,然后做这样的事情:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(terminate)]) {
    [[UIApplication sharedApplication] performSelector:@selector(terminate)];
} else {
    kill(getpid(), SIGINT); 
}

Swift 4.2(或更老版本)

库称为达尔文可以使用。

import Darwin

exit(0) // Here you go

注意:在iOS应用程序中不建议这样做。

这样做会得到崩溃日志。

在iPhone上,没有退出应用的概念。导致应用退出的唯一操作是触摸手机上的Home键,而这不是开发者可以访问的。

根据苹果公司的说法,你的应用程序不应该自行终止。因为用户没有点击Home键,所以任何返回到Home屏幕的操作都会给用户留下应用程序崩溃的印象。这是令人困惑的,不规范的行为,应该避免。

在application-info上添加UIApplicationExitsOnSuspend属性。请承认是真的。