web-dev-qa-db-fra.com

Comment terminer une application par programme dans iOS 12

J'ai un problème j'ai mis mon iPhone 6 sur iOS 12 beta 1 et c'est donc une méthode dans mon application pour fermer quand appuyer sur un bouton popup ne fonctionne pas sur iOS 12 mais fonctionne sur iOS 11.4.1

C'est la méthode que j'ai utilisée:

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

Dans iOS 11, l'application se ferme correctement, dans iOS 12, l'application ne quitte pas, ne faites rien lorsque vous appuyez sur le bouton contextuel.

Je sais que c'est Swift 4.2 et quand j'ai parcouru les nouvelles et les modifications, je n'ai pas vu quelque chose comme un lien avec une nouvelle méthode pour fermer correctement l'application.

J'en ai besoin parce que je l'utilise pour fermer l'application si la personne n'accepte pas les termes et conditions.

7
Louis Legout

Vous pouvez appeler exit method

exit(-1)

ou vous pouvez utiliser NSXPCConnection.suspend

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

En plus Apple ne recommande pas de forcer la fermeture de votre application. Peu importe la façon dont vous procédez.

Vérifiez ce poste.

10
U. Benlice

Essayez ce code:

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

Cela attendra 1 seconde et l'application prendra 0,5 seconde pour se fermer. Vous pouvez réduire l'affichage avant cet extrait de code.

6
ishwardgret