Objective-C Language
NSDictionary
खोज…
वाक्य - विन्यास
@{ मौलिक मूल्य, ... }
[NS सहकर्मी शब्दकोशWithObjectsAndKeys: मूल्य, कुंजी, ..., नील];
तानाशाही [ की ] = मूल्य ;
आईडी मूल्य = तानाशाही [ की ];
टिप्पणियों
NSdirectory वर्ग उन वस्तुओं को प्रोग्रामेटिक इंटरफ़ेस घोषित करता है जो कुंजी और मूल्यों के अपरिवर्तनीय संघों का प्रबंधन करते हैं। जब आप मनमाने ढंग से कुंजी के साथ जुड़े डेटा को पुनः प्राप्त करने के लिए एक सुविधाजनक और कुशल तरीके की आवश्यकता हो तो इस वर्ग या इसके उपवर्ग NSMutableDictionary का उपयोग करें। NS नॉडर स्टैटिक डिक्शनरी बनाता है, और NSMutable कॉड डायनेमिक डिक्शनरी बनाता है। (सुविधा के लिए, शब्द शब्दकोश इन वर्गों में से किसी एक के उदाहरण को संदर्भित करता है, बिना इसकी सटीक कक्षा सदस्यता को निर्दिष्ट किए।)
शब्दकोश के भीतर एक कुंजी-मूल्य जोड़ी को एक प्रविष्टि कहा जाता है। प्रत्येक प्रविष्टि में एक वस्तु होती है जो कुंजी का प्रतिनिधित्व करती है और एक दूसरी वस्तु जो उस कुंजी का मान होती है। एक शब्दकोश के भीतर, चाबियाँ अद्वितीय हैं। यही है, एक शब्दकोश में कोई भी दो कुंजी समान नहीं हैं (जैसा कि isEqual :) द्वारा निर्धारित किया गया है। सामान्य तौर पर, एक कुंजी किसी भी वस्तु हो सकती है (बशर्ते कि यह NSCopying प्रोटोकॉल के अनुरूप हो - नीचे देखें), लेकिन ध्यान दें कि कुंजी-मूल्य कोडिंग का उपयोग करते समय कुंजी एक स्ट्रिंग होना चाहिए (कुंजी-मूल्य कोडिंग बुनियादी बातों को देखें)। न तो एक कुंजी और न ही एक मूल्य शून्य हो सकता है; यदि आपको किसी शब्दकोश में शून्य मान का प्रतिनिधित्व करने की आवश्यकता है, तो आपको NSNull का उपयोग करना चाहिए।
एनएसडॉर अपने कोर फाउंडेशन समकक्ष, सीफोरडियर रीफ के साथ "टोल-फ्री ब्रिज" है। टोल-फ्री ब्रिजिंग के बारे में अधिक जानकारी के लिए टोल-फ्री ब्रिजिंग देखें।
शाब्दिक उपयोग करना
NSDictionary *inventory = @{
@"Mercedes-Benz SLK250" : @(13),
@"BMW M3 Coupe" : @(self.BMWM3CoupeInventory.count),
@"Last Updated" : @"Jul 21, 2016",
@"Next Update" : self.nextInventoryUpdateString
};
शब्दकोश का उपयोग कर बनानाWithObjectsAndKeys:
NSDictionary *inventory = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:13], @"Mercedes-Benz SLK250",
[NSNumber numberWithInt:22], @"Mercedes-Benz E350",
[NSNumber numberWithInt:19], @"BMW M3 Coupe",
[NSNumber numberWithInt:16], @"BMW X6",
nil];
एक अंतिम प्रहरी के रूप में nil
को अंतिम पैरामीटर के रूप में पारित किया जाना चाहिए जो अंत को दर्शाता है।
यह याद रखना महत्वपूर्ण है कि जब तात्कालिकता इस तरह से होती है तो मूल्य पहले और कुंजी दूसरे पर जाते हैं। उदाहरण में स्ट्रिंग के ऊपर कीज़ हैं और संख्याएँ मान हैं। विधि का नाम इसे भी दर्शाता है: dictionaryWithObjectsAndKeys
। हालांकि यह गलत नहीं है, लेकिन तात्कालिक वाक्यांशों (शाब्दिक के साथ) का अधिक आधुनिक तरीका पसंद किया जाता है।
पौधों का उपयोग करके बनाना
NSString *pathToPlist = [[NSBundle mainBundle] pathForResource:@"plistName"
ofType:@"plist"];
NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:pathToPlist];
NS मंदार में मान सेट करना
एनएसडी में एक कुंजी के ऑब्जेक्ट को सेट करने के कई तरीके हैं, जिस तरह से आपको मूल्य मिलता है। उदाहरण के लिए, कारों की सूची में लंबोर्गिनी जोड़ने के लिए
मानक
[cars setObject:lamborghini forKey:@"Lamborghini"];
किसी भी अन्य ऑब्जेक्ट की तरह, NSDictionary की विधि को कॉल करें जो एक कुंजी का एक ऑब्जेक्ट सेट करती है, objectForKey:
:। setValue:forKey:
साथ setValue:forKey:
भ्रमित न करने के लिए सावधान रहें setValue:forKey:
:; यह पूरी तरह से अलग चीज के लिए है, कुंजी मूल्य कोडिंग
आशुलिपि
cars[@"Lamborghini"] = lamborghini;
यह सिंटैक्स है जिसका उपयोग आप अधिकांश अन्य भाषाओं के शब्दकोश में करते हैं, जैसे C #, Java और जावास्क्रिप्ट। यह मानक वाक्यविन्यास की तुलना में बहुत अधिक सुविधाजनक है, और यकीनन अधिक पठनीय है (खासकर यदि आप इन अन्य भाषाओं में कोड करते हैं), लेकिन निश्चित रूप से, यह मानक नहीं है । यह केवल उद्देश्य C के नए संस्करणों में भी उपलब्ध है
NS सहारन से एक मान प्राप्त करना
एनएसड्रोब से किसी ऑब्जेक्ट को कुंजी के साथ प्राप्त करने के कई तरीके हैं। उदाहरण के लिए, कारों की सूची से लंबोर्गिनी प्राप्त करना
मानक
Car * lamborghini = [cars objectForKey:@"Lamborghini"];
किसी भी अन्य ऑब्जेक्ट की तरह, NSDictionary की विधि को कॉल करें जो आपको एक कुंजी के लिए ऑब्जेक्ट देती है, objectForKey:
:। इस के साथ भ्रमित करने के लिए नहीं सावधान रहना valueForKey:
:; यह पूरी तरह से अलग चीज के लिए है, कुंजी मूल्य कोडिंग
आशुलिपि
Car * lamborghini = cars[@"Lamborghini"];
यह सिंटैक्स है जिसका उपयोग आप अधिकांश अन्य भाषाओं के शब्दकोश में करते हैं, जैसे C #, Java और जावास्क्रिप्ट। यह मानक वाक्यविन्यास की तुलना में बहुत अधिक सुविधाजनक है, और यकीनन अधिक पठनीय है (खासकर यदि आप इन अन्य भाषाओं में कोड करते हैं), लेकिन निश्चित रूप से, यह मानक नहीं है । यह केवल उद्देश्य C के नए संस्करणों में भी उपलब्ध है
जांचें कि क्या NSdirectory के पास पहले से ही एक कुंजी है या नहीं
उद्देश्य सी:
//this is the dictionary you start with.
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"name1", @"Sam",@"name2", @"Sanju",nil];
//check if the dictionary contains the key you are going to modify. In this example, @"Sam"
if (dict[@"name1"] != nil) {
//there is an entry for Key name1
}
else {
//There is no entry for name1
}