2011-07-12 19 views
18

कोई एक शब्दकोश को एनम मान कैसे सहेजता है?enum मानों को एक शब्दकोश में सहेजना

जब मैं निम्नलिखित

enum someEnum 
{ 
    field0 = 0, 
    field1 = 1, 
    field2 = 2, 
}; 

enum someEnum someEnumObject; 

कोशिश करते हैं और मैं

[NSDictionary dictionaryWithObjectsAndKeys:] का उपयोग कर एक शब्दकोश में सहेजने की कोशिश करते हैं

someEnumObject, @"enum", 

मैं इस

मिल

चेतावनी: सिमेंटिक मुद्दा: सूचक रूपांतरण के लिए असंगत पूर्णांक प्रकार 'आईडी'

उत्तर

47

शब्दकोश में सहेजने के लिए निम्न का उपयोग करें,

[NSNumber numberWithInt:enumValue], @"enum", 

और आप इसे के रूप में,

enumValue = [[dictionary valueForKey:@"enum"] intValue]; 
7

एक enum के पैरामीटर के लिए 'enum व्यवहार' भेजने के अनिवार्य रूप से एक पूर्णांक है और एक NSDictionary स्टोर, वस्तुओं, ताकि आप अपने बदलने की आवश्यकता एक वस्तु के लिए enum। एक NSNumber इस के लिए अच्छी तरह से काम करेगा:

[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:someEnumObject], @"enum", nil]; 
9

बेहतर करने के लिए उपयोग NSNumber शाब्दिक प्राप्त कर सकते हैं एक वस्तु को एक वस्तु में परिवर्तित करें ताकि इसे NSDictionary में संग्रहीत किया जा सके:

http://clang.llvm.org/docs/ObjectiveCLiterals.html

:

@{@"enum":@(someEnumObject)}; 

यहाँ शाब्दिक के बारे में और अधिक पढ़ें:

Literals सामान लिखने के shorthands प्रदान करते हैं इस शब्दकोश की तरह लिखा जा सकता है

संबंधित मुद्दे