2011-12-14 7 views
5

Quando uso [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; per registrare notifiche push remote, si verifica un errore che dice cannot initialize a parameter of type 'UIRemoteNotificationType' with an rvalue of type 'int', qualcuno sa perché? grazie.non può inizializzare un parametro di tipo UIRemote NotificationType con un valore di tipo int

ambiente del mio progetto: Xcode 4.2 + iOS 5.

+0

Eventuali duplicati http://stackoverflow.com/questions/2584453/uiremotenotificationtype-invalid-conversion – jbat100

+0

Sono molto felice e anche grazie. –

risposta

14

Si dovrebbe lanciare in modo esplicito al UIRemoteNotificationType

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationType)(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
+0

Ecco fatto! Grazie mille. –

+0

@ jbat100 Grazie! Ha funzionato per me, ma puoi spiegare perché abbiamo bisogno di casting qui? – Developer

+0

@Harsh, direi che il motivo è che, una volta eseguita un'operazione bit a bit sull'enumerazione, ad esempio (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound), il risultato dell'operazione è il tipo utilizzato dal compilatore per rappresentare l'enum (che dipende dall'intervallo di i suoi valori), di solito alcuni tipi interi. Non sono sicuro del motivo per cui in questo caso non è possibile restituirlo in modo implicito a UIRemoteNotificationType. – jbat100