gpt4 book ai didi

objective-c - 未收到 NSApplicationWillTerminateNotification

转载 作者:行者123 更新时间:2023-12-03 16:53:25 25 4
gpt4 key购买 nike

我有一些代码需要在应用程序终止时运行。我为 NSApplicationWillTerminateNotification 注册 Controller ,如下所示:

[[NSNotificationCenter defaultCenter] 
addObserver: self
selector: @selector(applicationWillTerminate:)
name: NSApplicationWillTerminateNotification
object: nil];

现在,如果我启动应用程序并在前 20 秒左右退出它,applicationWillTerminate 就会被调用。如果我稍后退出该应用程序,则不会。我的应用程序中的什么可能导致此行为?我还尝试将我的 Controller 设置为 NSApplication 的委托(delegate),结果相同。有任何想法吗?

谢谢。

哦,这是 XCode 3.2,Snow Leopard 10.6.1,使用 10.5 SDK。在调试和发布版本中都会发生。

最佳答案

发生这种情况的原因有多种。

如果您正在运行 GC,您的观察者是否会在终止发生之前被收集并最终确定? (我应该对此进行测试并提交错误(如果确实如此),因为至少需要记录下来)

您的应用程序是否默默崩溃或直接调用 exit()?

一般来说,您不能指望收到终止通知,因为用户可能会强制退出。

此外,在 Snow Leopard 中,有一个称为突然终止的功能,它允许您的应用程序让系统知道可以安全地终止应用程序,而不是经历正常的终止程序。它记录在NSProcessInfo中文档。

关于objective-c - 未收到 NSApplicationWillTerminateNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com