UIApplicationDelegate 中那些容易被忽视的点?
2023-09-01 15:15:45
正文
作为一名 iOS 开发者,我们都知道 UIApplicationDelegate 协议是用于管理应用生命周期的,它里面有许多方法可以让我们在应用的不同状态下执行不同的操作。
在本文中,我们将讨论 UIApplicationDelegate 中一些容易被忽视的点,希望对大家有所帮助。
1. viewDidLoad 和 viewWillAppear
viewDidLoad 和 viewWillAppear 都是UIViewController生命周期中的方法,这两个方法经常被混淆。
viewDidLoad 是在视图控制器第一次被加载到内存时调用的,而 viewWillAppear 是在视图控制器即将被显示时调用的。
这意味着 viewDidLoad 只会被调用一次,而 viewWillAppear 可能会被调用多次(例如,当视图控制器被重新加载时)。
因此,在 viewDidLoad 中,我们应该做一些初始化工作,例如设置视图控制器的属性、添加子视图等。
而在 viewWillAppear 中,我们应该做一些更新UI的工作,例如刷新数据、重新布局子视图等。
2. viewWillDisappear 和 viewDidDisappear
viewWillDisappear 和 viewDidDisappear 也是UIViewController生命周期中的方法,这两个方法也经常被混淆。
viewWillDisappear 是在视图控制器即将消失时调用的,而 viewDidDisappear 是在视图控制器已经消失后调用的。
这意味着 viewWillDisappear 只会被调用一次,而 viewDidDisappear 可能会被调用多次(例如,当视图控制器被重新加载时)。
因此,在 viewWillDisappear 中,我们应该做一些清理工作,例如停止动画、移除定时器等。
而在 viewDidDisappear 中,我们应该做一些善后工作,例如释放资源、保存数据等。
3. applicationDidEnterBackground 和 applicationWillEnterForeground
applicationDidEnterBackground 和 applicationWillEnterForeground 是 UIApplicationDelegate 中的方法,这两个方法用于处理应用进入后台和从后台进入前台时的操作。
applicationDidEnterBackground 是在应用进入后台时调用的,而 applicationWillEnterForeground 是在应用从后台进入前台时调用的。
在 applicationDidEnterBackground 中,我们应该做一些省电的操作,例如停止动画、移除定时器、降低帧率等。
而在 applicationWillEnterForeground 中,我们应该做一些恢复操作,例如重新启动动画、添加定时器、恢复帧率等。
4. applicationDidBecomeActive 和 applicationWillResignActive
applicationDidBecomeActive 和 applicationWillResignActive 是 UIApplicationDelegate 中的方法,这两个方法用于处理应用成为活动状态和失去活动状态时的操作。
applicationDidBecomeActive 是在应用成为活动状态时调用的,而 applicationWillResignActive 是在应用失去活动状态时调用的。
在 applicationDidBecomeActive 中,我们应该做一些恢复操作,例如重新启动动画、添加定时器、恢复帧率等。
而在 applicationWillResignActive 中,我们应该做一些省电的操作,例如停止动画、移除定时器、降低帧率等。
5. applicationWillTerminate
applicationWillTerminate 是 UIApplicationDelegate 中的方法,这个方法是在应用即将被终止时调用的。
在 applicationWillTerminate 中,我们应该做一些善后工作,例如释放资源、保存数据等。
总结
以上就是 UIApplicationDelegate 中一些容易被忽视的点,希望对大家有所帮助。