gpt4 book ai didi

objective-c - NSUserNotificationCenter defaultNotificationcenter 返回 nil

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:32 24 4
gpt4 key购买 nike

我觉得我快要疯了。

我正在制作一个命令行小工具,让我知道我喜欢的 Twitch channel 何时上线。到目前为止,一切正常。只有一个小问题:[NSUserNotificationCenter defaultUserNotificationCenter] 始终返回 nil,无论我在程序中的何处调用它。这有点问题,因为我需要能够发送通知。

经过一个小时的谷歌搜索,我无法弄清楚发生了什么。 [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:myDelegate] 之类的东西不会崩溃,但我很确定那是因为你可以在 Obj-C 中将消息发送到 nil。类似地,我可以执行类似 [[NSUserNotificationCenter defaultNotificationCenter] deliverNotification: mynote] 的操作,但屏幕上不会显示任何内容(这是将 [NSUserNotificationCenter defaultUserNotificationCenter] 的委托(delegate)设置为为 userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *) 方法返回 YES。)

此外,所有通过 deliverNotification 呈现的通知都没有将它们的 delivered 属性设置为 YES。

我唯一能想到的是,NSUserNotificationCenter 的用法只有在您运行 NSApplication 时才有效,但我无法在任何地方找到它的文档。我正在运行一个简单的命令行工具,它几乎是一个 main 函数、一个 @autoreleasepool 和一些方法调用。

有什么明显的东西可以导致 [NSUserNotificationCenter defaultUserNotificationCenter] 返回 nil 吗?

最佳答案

The only thing I can think of is that the usage of NSUserNotificationCenter only works if you're running an NSApplication, but I cannot find that documented anywhere.

我认为在某处明确记录它并不容易,但如果您的应用程序是一个简单的命令行工具,即它没有使用 NSRunLoop,我怀疑这些功能像通知一样可以工作。它们本质上要求您的程序有一个运行循环,用于等待事件(例如,收到通知、点击、触摸)并将它们分派(dispatch)给任何应该处理它们的人。

您可能会尝试从主函数启动和 NSRunLoop,但我猜它不再是一个简单的命令行工具。

关于objective-c - NSUserNotificationCenter defaultNotificationcenter 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460372/

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