首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构建一个运行在MacOS10.6上并支持NSUserNotificationCenter的应用程序?

如何构建一个运行在MacOS10.6上并支持NSUserNotificationCenter的应用程序?
EN

Stack Overflow用户
提问于 2012-07-31 09:20:39
回答 1查看 1.4K关注 0票数 10

我做了很多研究,但找不到我要找的东西:目前,我的应用程序的Deployment TargetBase SDK都被设置为10.8,并且运行得很完美。我可以正确地发布通知到山狮新通知中心!

为了构建同样在Mac 10.6下运行的应用程序,我已经将Deployment设置为10.6并构建了它(as recommended in this thread)。不幸的是,该应用程序在10.6上崩溃,崩溃报告详细说明了无法找到NSUserNotificationCenter (没有OS版本处理)。

--

所以我肯定要做的是,检查NSUserNotificationCenter类是否存在:

代码语言:javascript
复制
notificationCenterIsAvailable = (NSClassFromString(@"NSUserNotificationCenter")!=nil);

并在这个布尔标志的基础上操作。

但是,不能基于此标志的代码呢,比如:

  • 接口..: <NSUserNotificationCenterDelegate> {
  • 还是类属性中对Notification:NSUserNotificationCenter *center的引用的类型?

我的第一个想法是在运行时动态地更改类头,即根据类是否存在添加方法和属性来处理Notificaion中心,但是这看起来真的很复杂吗?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-31 09:26:10

这些都是编译问题,而且在Base为10.8的时候都会很好。如果center不存在,则nil指针可以保留在NSUserNotificationCenter上,因此您可以使用该指针作为标志来检查是否正在执行通知,或者在测试后运行的代码中。

编辑--实际上,离开它-- nil将意味着您甚至不需要检查它;只要正常发送消息,如果指针是nil,它们将被忽略(除非创建消息的代价很高,并且您希望节省一些CPU周期)。

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

https://stackoverflow.com/questions/11736877

复制
相关文章

相似问题

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