แอป LifeCycle
: หมุนเวียนตั้งแต่เปิดแอปจนถึงปิดเครื่อง
: ใช้งานได้โดยจัดการหน่วยความจำหรือข้อมูล ⬆️ ความปลอดภัยสามารถดำเนินการได้
แอปพลิเคชัน UIA, AppDelegate
สถานการณ์:กำหนดฟังก์ชันที่วัตถุ AppDelegate ได้รับ msg ที่ส่งจากวัตถุ UIApplication และดำเนินการแต่ละรายการ
ไม่ทำงาน:สถานะที่แอปไม่ได้ทำงานอยู่
ไม่ทำงาน:สถานะที่แอปทำงานอยู่แต่ไม่ได้รับเหตุการณ์
ใช้งานอยู่:สถานะที่แอปกำลังทำงานและมีเหตุการณ์เกิดขึ้น
พื้นหลัง:สถานะที่แอปอยู่ในพื้นหลังแต่ โค้ดที่กำลังดำเนินการ
ถูกระงับ:สถานะที่แอปอยู่ในพื้นหลังและไม่มีการรันโค้ด
ฟังก์ชันผู้รับมอบสิทธิ์ในไฟล์ AppDelegate.swift
application(_:didFinishLaunching:) Run when the app first starts
applicationWillResignActive: - Executed when the app is moved from active to inactive
applicationDidEnterBackground: - Run when the app is in the background
applicationWillEnterForeground: - Executes when the app is moved from the background to the foreground (not yet running in the foreground)
applicationDidBecomeActive: - When the app is active and running
applicationWillTerminate: - Run when app closes
ฉากผู้แทน
เพื่อให้ตอบสนองได้ดีกับฟังก์ชั่นฉากหลายฉากที่รองรับตั้งแต่ iOS 13 เป็นต้นไป
AppDelegate/SceneDelegate
AppDelegate
1. แอปพลิเคชัน func(_: didFinishLaunchingWithOptions: ) -> บูล
การตั้งค่าแอปพลิเคชันดำเนินการด้วยวิธีนี้
2. แอปพลิเคชัน func(_: configurationForConnecting:options: ) -> UISceneConfiguration
วิธีการนี้เรียกว่าเมื่อแอปพลิเคชันต้องการจัดเตรียมฉาก/หน้าต่างใหม่
3. แอปพลิเคชัน func(_: didDiscardSceneSessions: )
เรียกเมื่อผู้ใช้ละทิ้งฉาก
ฉากผู้แทน
1. ฉาก (_: willConnectTo: ตัวเลือก: )
นี่เป็นวิธีแรกที่เรียกในวงจรชีวิตของ UISceneSession สร้างมุมมองเนื้อหาแรก UIWindow ใหม่ และตั้งค่า rootViewController ของหน้าต่าง
(หน้าต่าง: วิวพอร์ตที่แอปทำงาน)
2. ฉากจะเข้าสู่เบื้องหน้า(_ :)
เรียกว่าเมื่อฉากเปลี่ยนไปเบื้องหน้า
1) เมื่อพื้นหลัง → พื้นหน้า
2) เมื่อเปิดใช้งานเป็นครั้งแรก
3. ฉากไม่กลายเป็นแอคทีฟ(_ :)
เรียกเมื่อเปลี่ยนจากไม่ใช้งาน → ใช้งาน
4. sceneWillResignActive(_ :)
เรียกว่าเมื่อใช้งาน→ไม่ได้ใช้งานช่วงการเปลี่ยนภาพ
ตัวอย่าง) สถานการณ์ตัวสลับแอป
5. ฉากไม่ใส่พื้นหลัง (_ :)
เรียกว่าเมื่อฉากเปลี่ยนจากพื้นหน้าเป็นพื้นหลัง
บันทึกข้อมูลสถานะเพื่อให้สามารถกู้คืนได้เมื่อกลับสู่พื้นหน้าในครั้งต่อไป บันทึกข้อมูล หรือส่งคืนทรัพยากรที่ใช้ร่วมกัน
6. ฉากไม่ตัดการเชื่อมต่อ (_ :)
เมื่อฉากเข้าสู่พื้นหลัง มีความเป็นไปได้ที่ระบบจะตัดการเชื่อมต่อเพื่อเพิ่มทรัพยากร
(ตัดการเชื่อมต่อ : เซสชันถูกตัดการเชื่อมต่อ / ไม่ได้หมายความว่าแอปถูกยกเลิก )