2011-01-27 4 views
37

मैं एनएसएमयूटेबल डिक्शनरी में फ्लोट वैल्यू सेट करने के लिए 'कुंजी' के रूप में एक पूर्णांक मान का उपयोग कैसे कर सकता हूं?मैं एनएसएमयूटेबल डिक्शनरी में मान सेट करने के लिए 'कुंजी' के रूप में एक पूर्णांक मान का उपयोग कैसे कर सकता हूं?

उत्तर

76

साथ इसे पुनः प्राप्त करने के रूप में NSDictionarys केवल वस्तुओं से निपटने के लिए तैयार कर रहे हैं, यह करने के लिए एक आसान तरीका पूर्णांक लपेट और एक NSNumber वस्तु में फ्लोट करने के लिए है। उदाहरण के लिए:

NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc] init]; 
[testDictionary setObject:[NSNumber numberWithFloat:1.23f] 
        forKey:[NSNumber numberWithInt:1]]; 
NSLog(@"Test dictionary: %@", testDictionary); 

[testDictionary release]; 

प्रासंगिक मूल्य निकालने के लिए, बस NSNumber वर्ग से उपयुक्त intValue, floatValue, आदि विधि का उपयोग करें।

+0

धन्यवाद मिडापर्क ... – Ratan

+2

यह मुझे बता रहा है कि कुंजी 'एनएसएसटींग * होनी चाहिए, और' NSKeyValueCoding.h' के माध्यम से खोजना चाहिए सभी विधियों तारों की उम्मीद है। एसडीके में कुछ बदल गया है? –

2

इसे एक वस्तु होने की आवश्यकता है, इसलिए इसके बजाय [NSNumber numberWithInt:myInteger] का उपयोग करें।

फिर, -integerValue

+1

पूर्णांक वैल्यू विधि एक एनएसआईएनटेगर ऑब्जेक्ट देता है, न कि int। :-) –

+0

ओच, यह -intValue होना चाहिए। धन्यवाद मिडापर्का – sidyll

+3

@ मिडापर्का: एनएसआईएनटेगर एक वस्तु नहीं है। – EmptyStack

8

आप NSMapTable का उपयोग कर सकते हैं क्योंकि यह पूर्णांक कुंजी और/या मानों का सीधे समर्थन करता है। एनएसएनंबर के माध्यम से बॉक्स/अनबॉक्स के लिए कोई ज़रूरत नहीं है, लेकिन इसे स्थापित करने और उपयोग करने में थोड़ा और मुश्किल भी है।

+0

'NSMapTable' केवल आईओएस 6 और बाद में उपलब्ध है। –

+1

एनएसएमएपीटेबल में कमजोर संदर्भ हैं, जो आप चाहते हैं या नहीं भी हो सकता है। हालांकि, एनएस डिक्शनरी से अलग है। –

+0

'NSMapInsert' आईओएस पर उपलब्ध नहीं है। क्या इस तरह के कुछ के अलावा एक पूर्णांक मान सेट करने का एक बेहतर तरीका है: '[नक्शा सेटऑब्जेक्ट: (__ पुल आईडी) ((शून्य *) myInt) के लिए: myKey]; '? मुझे लगता है कि मूल्य विकल्प 'NSPointerFunctionsIntegerPersonality | पर सेट किए गए थे NSPointerFunctionsOpaqueMemory'। – qix

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