如何建立在Mac OS 10.6上运行,并支持NSUserNotificationCenter的应用

2019-07-30 17:09发布

我做了很多的研究,但我无法找到我要找:目前,无论是Deployment TargetBase SDK我的应用程序设置为10.8 ,和它运行完美。 我可以正常发布通知到山狮新的通知中心!

要实现这样的也Mac OS下运行的应用程序10.6 ,我给自己定的部署目标至10.6,并建立它( 在这个线程建议 )。 不幸的是,应用程序崩溃,在10.6和崩溃报告,详细说明该NSUserNotificationCenter找不到(无操作系统版本处理)。

-

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

notificationCenterIsAvailable = (NSClassFromString(@"NSUserNotificationCenter")!=nil);

并基于此布尔标志操作。

但是,不能在此基础上标志关于代码是什么,如:

  • 接口..: <NSUserNotificationCenterDelegate> {
  • 或者参考通知中心的类型: NSUserNotificationCenter *center在类的属性?

我首先想到的是动态改变类的头在运行,即,添加方法和属性来处理基于类是否存在的Notificaion中心,但是这似乎是真的复杂?!

Answer 1:

这些都是编译问题,并会被罚款的所有基地SDK为10.8的时间。 该center指针可以保持在nil ,如果NSUserNotificationCenter不存在的,因此你可以使用它作为一个标志,检查是否你正在做的通知或不代码测试运行后。

编辑事实上离开它nil将意味着你甚至都不需要检查它; 只是发送邮件为正常,如果指针是,他们将被忽略nil (这是除非消息的创建是昂贵的,你想节省一些CPU周期)。



文章来源: How to build an app that runs on Mac OS 10.6 and supports the NSUserNotificationCenter?