2010-04-06 14 views
5

मैं अपने अनुप्रयोग में कोड के इस काफी मानक लाइन का उपयोग करने के कोशिश कर रहा हूँ:UIRemoteNotificationType अवैध रूपांतरण

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

लेकिन अनुवर्ती त्रुटि मिल रही है:

error: invalid conversion from 'int' to 'UIRemoteNotificationType' 

यह काम करता है अगर मैं केवल एक का उपयोग करें अधिसूचना प्रकारों में से प्रत्येक बार विफल रहता है यदि मैं कोशिश करता हूं और एक से अधिक का उपयोग करता हूं। कोई विचार क्या मैं गलत कर रहा हूँ?

उत्तर

14

आप शायद ऑब्जेक्टिव-सी ++ का उपयोग कर रहे हैं, जो int से एक enum में रूपांतरण को अस्वीकार कर दिया गया है।

[… registerForRemoteNotificationTypes: 
    (UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | …)]; 
4

आप UIRemoteNotificationType के रूप में परिणाम कास्ट करने के लिए है:

(UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound) 

इस तरह विधि मिल गया यह क्या उम्मीद कर रही है।

+0

यह सही था लेकिन मैंने केनीटीएम के जवाब को स्वीकार कर लिया क्योंकि यह विस्तार से क्यों प्रदान किया गया। धन्यवाद। –

1

इस का प्रयोग करें:

एक स्पष्ट वर्णक जोड़ने की कोशिश करो इस उर समस्या का समाधान होगा।

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationType)(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
संबंधित मुद्दे