Я провел много исследований, но я просто не мог найти то, что искал:
В настоящее время для Deployment Target
и Base SDK
моего приложения установлено значение 10.8
, и он работает отлично. Я могу правильно опубликовать уведомление в новом Центре уведомлений Mountain Lions!
Чтобы создать приложение, которое также работает под Mac OS 10.6
, я установил для развертывания Target значение 10.6 и построил его (как рекомендовано в этом потоке), К сожалению, приложение сработало с ошибкой 10.6, и в отчете о сбое подробно указано, что NSUserNotificationCenter не найден (без обработки версии ОС).
-
Итак, что я, безусловно, должен сделать, это проверить, существует ли класс NSUserNotificationCenter:
notificationCenterIsAvailable = (NSClassFromString(@"NSUserNotificationCenter")!=nil);
и работать на основе этого логического флага.
Но как насчет кода, который не может быть основан на этом флаге, например:
- интерфейс
..: <NSUserNotificationCenterDelegate> {
- или тип ссылки на Центр уведомлений:
NSUserNotificationCenter *center
в свойствах класса?
Моя первая мысль заключалась в том, чтобы динамически изменять заголовок класса во время выполнения, т.е. добавлять методы и свойства для обработки Notificaion Center на основе того, существует или нет класс, но это кажется действительно сложным?!