บางครั้งต้องการปิดแอปพลิเคชัน เช่น ไม่มีอินเทอร์เน็ต อยากปิดแอปทันที แต่ Apple ไม่สนับสนุนการปิดแอปด้วยโปรแกรม วิธีเดียวที่ถูกต้องคือกดปุ่ม Home เพื่อให้แอปเข้าสู่ Background และระบบจัดการหน่วยความจำอัตโนมัติ
วิธีอื่นๆ (ไม่แนะนำ)
exit(0)- จบโปรแกรมทันที แต่ Apple อาจ Reject แอปNSThread.mainThread().exit()- เหมือนกัน- เรียก
applicationWillTerminateเอง - ไม่ใช่วิธีที่ถูกต้อง
แนวทางที่ดีที่สุด
แสดง Alert แจ้งผู้ใช้ ให้กดปุ่ม Home เพื่อออกจากแอป เอง
let alert = UIAlertController(
title: "ไม่สามารถเชื่อมต่ออินเทอร์เน็ต",
message: "กรุณากดปุ่ม Home เพื่อปิดแอปพลิเคชัน",
preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "ตกลง", style: .default))
present(alert, animated: true)
เหตุผลที่ Apple ไม่อนุญาต
- iOS จัดการ Lifecycle เอง (Background, Suspend, Terminate)
- การ Force Quit ทำให้ข้อมูลสูญหาย หรือประสบการณ์ผู้ใช้แย่
- App Store Guidelines ห้ามใช้ exit() หรือ private API
สรุป: อย่าพยายามปิดแอปด้วยโค้ด ให้ออกแบบ UX ให้ผู้ใช้ออกจากแอปเอง หรือจัดการสถานะ Error อย่างเหมาะสม