gpt4 book ai didi

objective-c - NSWorkspace notificationCenter 未在垃圾收集下发送通知

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

我不确定我是否在这里做错了什么:

我正在 awakeFromNib 中使用此代码段注册工作区通知

[[[NSWorkspace sharedWorkspace] notificationCenter] 
addObserver:self
selector:@selector(noteReceived:)
name:nil
object:nil];

选择器noteReceived:采用单个NSNotification *作为参数。我已经在上面设置了一个断点。

当在 GC 关闭的情况下编译时,它工作正常,并且我收到了所有通知。

当 GC 打开时,我的应用程序启动时只会收到一条通知,仅此而已。

我错过了什么吗?

解决方案:

我错过了一些东西。这只是一个快速测试项目,因此 Controller 之间没有真实应用程序中常见的连接。在 nib/xib 文件中实例化一个对象并期望它不被收集是不够的。

一旦我将 Controller 设置为文件所有者的委托(delegate)(即使它没有实现任何委托(delegate)方法),就足以使对象保持事件状态。

最佳答案

在 GC 下,NSNotificationCenter 仅维护对观察对象的弱引用。因此,请确保您的观察对象 Root 于对象层次结构中的某个位置。

关于objective-c - NSWorkspace notificationCenter 未在垃圾收集下发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/648526/

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