Reputation: 211
I have a problem I put my iPhone 6 on iOS 12 beta 1 and that's so a method in my application to close when press on a popup button doesn't works on iOS 12 but works on iOS 11.4.1
That's the method that I used:
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
In iOS 11 the app exit properly, in iOS 12 the app doesn't exit just do nothing when press on the popup button.
I know that this is Swift 4.2 and when I rode the news and modifications I haven't seen something like a link with a new method to close app properly.
I need that because I use that to close the app if the person doesn't accept Terms and conditions.
Upvotes: 16
Views: 33153
Reputation: 1758
This would be the easiest way to terminate your App if you don‘t mind triggering a crash error.
// Create an array and "index out of range"
[0][1]
Upvotes: 4
Reputation: 1146
Try this code :
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
exit(0)
}
}
This will wait 1 sec and app will take 0.5 second to close. You can dim display before this code snippet.
Upvotes: 21
Reputation: 899
You can call exit method
exit(-1)
or you can use NSXPCConnection.suspend
UIControl().sendAction(#selector(NSXPCConnection.suspend),
to: UIApplication.shared, for: nil)
Besides Apple isn't recommending to force terminate your app. It doesn't matter how you do that.
Check this post.
Upvotes: 22