2015-01-14 13 views
7

Vorrei passare alle costanti di notifica push deprecate rapidamente, ma senza intoppi. Comprendo che anche l'approccio nell'implementazione delle notifiche remote e locali è cambiato, ma questo esula dallo scopo di questa domanda.UIRemoteNotificationTypeAlert è deprecato - come posso passare a UIUserNotificationTypeAlert con un team di grandi dimensioni?

Ecco alcuni fattori/vincoli che dovrebbero essere considerati:

  1. ho una abbastanza grande team di sviluppatori iOS.
  2. Alcuni sviluppatori utilizzano ancora xCode 5, che non viene compilato con l'API di iOS 8.
  3. Alcuni sviluppatori utilizzano già xCode 6.2 Beta 3, che utilizza un target WatchKit aggiuntivo non disponibile in xCode 6.1.1.
  4. La stragrande maggioranza degli sviluppatori utilizza xCode 6.1.1.

Grazie per il vostro aiuto!

+0

condizioni di utilizzo per entrambe le versioni –

risposta

10

Fortunatamente questo è abbastanza semplice. Tutto ciò che devi fare è utilizzare una direttiva del compilatore, preferibilmente in un file di intestazione centrale per le notifiche push. Nella direttiva condizionale, puoi mappare il tuo insieme di costanti, usando define, sia nel nuovo set, sia nel set deprecato, a seconda dell'ultima versione iOS supportata da xCode.

#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 
+0

Questo è pulito, grazie! – norton9000

+0

che sembra funzionare se prefisso "UI" a ciascun valore definito +1 –