13

我有一个问题,我将我的 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,当我看到新闻和修改时,我还没有看到类似链接的内容,其中包含正确关闭应用程序的新方法。

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

4

3 回答 3

18

您可以调用退出方法

exit(-1)

或者你可以使用NSXPCConnection.suspend

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

此外,Apple 不建议强制终止您的应用程序。你如何做到这一点并不重要。

检查这篇文章。

于 2018-06-11T13:52:41.233 回答
17

试试这个代码:

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 秒才能关闭。您可以在此代码段之前调暗显示。

于 2018-09-26T10:26:13.660 回答
3

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

// Create an array and "index out of range"
[0][1]
于 2021-07-12T03:26:58.467 回答