首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUserNotificationCenter defaultNotificationcenter返回nil

NSUserNotificationCenter defaultNotificationcenter返回nil
EN

Stack Overflow用户
提问于 2014-06-28 04:35:09
回答 1查看 392关注 0票数 4

我觉得我快疯了。

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

整整搜索了一个小时后,我搞不清到底是怎么回事。像[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:myDelegate]这样的东西不会崩溃,但我非常确定这是因为您可以在Obj-C中向nil发送消息。类似地,我可以执行类似于[[NSUserNotificationCenter defaultNotificationCenter] deliverNotification: mynote]的操作,但屏幕上没有显示任何内容(这是将[NSUserNotificationCenter defaultUserNotificationCenter]的委托设置为为userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)方法返回YES。)

此外,通过deliverNotification呈现的所有通知都不会将其delivered属性设置为YES。

我能想到的唯一一件事是,只有在运行NSApplication的情况下,NSUserNotificationCenter的用法才有效,但我在任何地方都找不到这方面的文档。我正在运行一个简单的命令行工具,它相当于一个main函数、一个@autoreleasepool和一些方法调用。

有没有什么明显的原因会导致[NSUserNotificationCenter defaultUserNotificationCenter]返回nil?

EN

回答 1

Stack Overflow用户

发布于 2014-06-28 16:09:29

我能想到的唯一一件事是,只有在运行NSApplication的情况下,NSUserNotificationCenter的用法才有效,但我在任何地方都找不到这方面的文档。

我不认为在某个地方找到它是很容易的,但是如果你的应用是一个简单的命令行工具,也就是说,它没有使用NSRunLoop,我怀疑像通知这样的功能根本不能工作。它们本质上要求你的程序有一个运行循环,该循环等待事件(例如,通知进来,点击,触摸),并将它们分派给任何应该处理它们的人。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24460372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档