返回

UIApplicationDelegate 中那些容易被忽视的点?

IOS

正文

作为一名 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 中一些容易被忽视的点,希望对大家有所帮助。