如何在iOS 12中以编程方式终止应用程序

时间:2018-06-11 13:39:04

标签: ios swift ios12

我有一个问题我把我的iPhone 6放在iOS 12 beta 1上,这是我的应用程序中的一个方法,当按下弹出按钮在iOS 12上不起作用但在iOS 11.4.1上工作

这就是我使用的方法:

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)

在iOS 11中,应用程序正常退出,在iOS 12中,当按下弹出按钮时,应用程序不会退出,只执行任何操作。

我知道这是Swift 4.2,当我浏览新闻和修改时,我没有看到类似于使用新方法的链接来正确关闭应用程序。

我需要这个,因为如果此人不接受条款和条件,我会用它关闭应用程序。

3 个答案:

答案 0 :(得分:8)

您可以调用退出方法

exit(-1)

或者您可以使用 NSXPCConnection.suspend

UIControl().sendAction(#selector(NSXPCConnection.suspend),
                       to: UIApplication.shared, for: nil)

此外,Apple不建议强制终止您的应用。你怎么做的并不重要。

检查this帖子。

答案 1 :(得分:4)

尝试此代码:

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
    UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
     DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
      exit(0)
     }
}

这将等待1秒钟,应用将需要0.5秒才能关闭。您可以在此代码段之前使显示变暗。

答案 2 :(得分:0)

如果您不介意触发崩溃错误,这将是终止应用的最简单方法。

// Create an array and "index out of range"
[0][1]