ios - 我应该在 applicationWillTerminate 中删除观察者吗?

标签 ios objective-c

我在 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: 方法中。

因为应用会被终止,这样做有意义吗?

提前致谢

最佳答案

实际上,不需要在应用委托(delegate)的 deallocapplicationWillTerminate: 中做太多清理工作。应用程序进程即将消失。

诸如关闭/保存文件和其他类似类型的清理应该完成,但在即将退出的进程中清理内存或观察者没有什么意义。

关于ios - 我应该在 applicationWillTerminate 中删除观察者吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434443/

相关文章:

android - 如何使用 Quickblox 获得最佳视频质量?

电话响起时的 iPhone 通知

iphone - 从标签栏弹出的图标

ios - EXC_BAD_ACCESS 仅适用于运行 iOS 8 的 xcode 8

iphone - 使用 NSURLConnection 下载大尺寸(以 MB 为单位).txt 文件

ios - swift 。如何将 NSData 中的字节写入另一个 NSData?

ios - 忽略 Completable 上的错误 - RxSwift

ios - MapBox 标记偏移

ios - 从 didReceiveRemoteNotification 调用的第一个 HTTP 请求总是失败

ios - 当我将播放器 API 打到 Rounaz Cricket API 时,它会发回给我 "AccessDenied"