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

Lou*_*out 6 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)
Run Code Online (Sandbox Code Playgroud)

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

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

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

U. *_*ice 9

你可以调用exit方法

exit(-1)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用NSXPCConnection.suspend

UIControl().sendAction(#selector(NSXPCConnection.suspend),
                       to: UIApplication.shared, for: nil)
Run Code Online (Sandbox Code Playgroud)

除了Apple不建议强制终止您的应用程序.你怎么做也没关系.

查看这篇文章.


小智 6

试试这个代码:

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

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

  • 有人使用此代码将应用程序上传到应用程序商店吗?苹果会拒绝我的应用程序这样做吗? (3认同)