UIRemoteNotificationTypeAlert 已弃用 - 我如何在大型团队中过渡到 UIUserNotificationTypeAlert?

UIRemoteNotificationTypeAlert is deprecated - how do I transition to UIUserNotificationTypeAlert with a large team?

我想快速、平稳地从已弃用的推送通知常量过渡。我知道实现远程和本地通知的方法也发生了变化,但这不在这个问题的范围内。

这里有一些 factors/constraints 应该考虑的:

  1. 我有一个相当庞大的 iOS 开发团队。
  2. 一些开发人员仍在使用 xCode 5,它不能与 iOS 8 API.
  3. 一起编译
  4. 一些开发人员已经在使用 xCode 6.2 Beta 3,它使用了 xCode 6.1.1 中不可用的附加 WatchKit 目标。
  5. 绝大多数开发者都在使用 xCode 6.1.1.

感谢您的帮助!

幸运的是,这相当简单。您需要做的就是使用编译器指令,最好是在推送通知中心的头文件中。在条件指令中,您可以使用定义将您自己的常量集映射到新集或已弃用的集,具体取决于您的 xCode 支持的最新 iOS 版本。

#ifdef __IPHONE_8_0
    #define RemoteNotificationTypeAlert UIUserNotificationTypeAlert
    #define RemoteNotificationTypeBadge UIUserNotificationTypeBadge
    #define RemoteNotificationTypeSound UIUserNotificationTypeSound
    #define RemoteNotificationTypeNone  UIUserNotificationTypeNone
#else
    #define RemoteNotificationTypeAlert UIRemoteNotificationTypeAlert
    #define RemoteNotificationTypeBadge UIRemoteNotificationTypeBadge
    #define RemoteNotificationTypeSound UIRemoteNotificationTypeSound
    #define RemoteNotificationTypeNone  UIRemoteNotificationTypeNone
#endif