क्या
typedef enum
का प्रत्येक मानint
के रूप में माना जाता है?typedef enum से NSNumber को कैसे परिवर्तित करें?जैसे, दिए गए निम्न
typedef enum
:// UIView.h typedef enum { UIViewAnimationCurveEaseInOut, UIViewAnimationCurveEaseIn, UIViewAnimationCurveEaseOut, UIViewAnimationCurveLinear } UIViewAnimationCurve;
मैं कैसे जो विधि एक
NSNumber
बनाने के लिए उपयोग करने के लिए पता है?+ (NSNumber *)numberWithShort:(short)value; + (NSNumber *)numberWithUnsignedShort:(unsigned short)value; + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithUnsignedInt:(unsigned int)value; + (NSNumber *)numberWithLong:(long)value; + (NSNumber *)numberWithUnsignedLong:(unsigned long)value; + (NSNumber *)numberWithLongLong:(long long)value; + (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value; + (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0); + (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
मुझे लगता है कि
+[NSNumber numberWithInt:]
क्योंकि accepted answer to Best way to implement Enums with Core Data इसे इस्तेमाल करता है उपयोग करने के लिए सही तरीका है। उदा .:[NSNumber numberWithInt:UIViewAnimationCurveLinear]
लेकिन, यदि
+[NSNumber numberWithInt:]
सही है, तो क्यों?- एक बिटवाइज़
enum
, उदा .:enum { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1 << 2, UIViewAutoresizingFlexibleTopMargin = 1 << 3, UIViewAutoresizingFlexibleHeight = 1 << 4, UIViewAutoresizingFlexibleBottomMargin = 1 << 5 }; typedef NSUInteger UIViewAutoresizing;
मेरा अनुमान है कि
+[NSNumber numberWithUnsignedInteger:]
है क्योंकि वहाँ कोई स्पष्टNSUInteger
typedef
के बाद उपयोग करने के लिए सही तरीका है कि के लिए। सही बात? उदा .:
[NSNumber numberWithUnsignedInteger:UIViewAutoresizingNone]
11
A
उत्तर
16
आजकल आधुनिक वाक्य रचना के लिए इस्तेमाल किया जा सकता है:
@(UIViewAnimationCurveLinear)
6
[NSNumber numberWithInt: your_enum_int_variable];
आप झूमने! इसके लिए धन्यवाद। –