我在AppDelegate.h文件中添加了以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(saveDataAndSettings)
                                                 name:UIApplicationDidEnterBackgroundNotification
                                               object:nil];
}

我通常是这样写的:
- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

如果我将UIViewController类设置为观察者(非ARC)。

我想知道,如果我在AppDelegate中这样做,是否仍应插入以下行:
[[NSNotificationCenter defaultCenter] removeObserver:self];

在applicationWillTerminate:方法中。

因为该应用将被终止,这样做是否有意义?

提前致谢

最佳答案

实际上,无需对应用程序委托的deallocapplicationWillTerminate:进行大量清理。应用程序流程即将消失。

应该执行关闭/保存文件之类的工作,以及其他类似类型的清理工作,但是在将要退出的过程中清理内存或观察者毫无意义。

10-08 02:15