2010-02-03 11 views
76

मुझे बस कुछ अनुसरण करने की आवश्यकता है। मान लीजिए कि मेरे पास एक शब्दकोश है।NSDictionary - यह जांचने की आवश्यकता है कि शब्दकोश में कुंजी-मूल्य वाली जोड़ी है या नहीं

NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init]; 
[xyz setValue:@"sagar" forKey:@"s"]; 
[xyz setValue:@"amit" forKey:@"a"]; 
[xyz setValue:@"nirav" forKey:@"n"]; 
[xyz setValue:@"abhishek" forKey:@"a"]; 
[xyz setValue:@"xrox" forKey:@"x"]; 

अब, मैं इस प्रकार

[xyz करता कुंजी "बी" मान जांच करने की आवश्यकता ?? जोड़ी या नहीं?

प्रश्न यह है कि कैसे?

दूसरा प्रश्न यह है कि कुल कुंजी-मूल्य जोड़ी को कैसे गिनना है?

उदाहरण NSInteger mCount=[xyz keyCounts]; के लिए कहो

उत्तर

167

बस objectForKey:@"b" के लिए यह पूछना। यदि यह nil देता है, तो उस कुंजी पर कोई ऑब्जेक्ट सेट नहीं होता है।

if ([xyz objectForKey:@"b"]) { 
    NSLog(@"There's an object set for key @\"b\"!"); 
} else { 
    NSLog(@"No object set for key @\"b\""); 
} 

संपादित: अपने संपादित दूसरा सवाल के रूप में, यह बस NSUInteger mCount = [xyz count]; है। इन दोनों उत्तरों को NSDictionary कक्षा संदर्भ ([1][2]) में अच्छी तरह से और आसानी से पाया गया है।

+0

+1 वास्तव में इस प्रकार की जांच कर सकते के साथ, प्रलेखन सीधे ऊपर का कहना है यह: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ फाउंडेशन/कक्षाएं/NSDictionary_Class/संदर्भ/संदर्भ.html # // apple_ref/डॉक्टर/यूआईडी/20000140-सीबीएचसीडीआईडीजे –

+4

क्या होगा अगर कुंजी शब्दकोश में मौजूद है और इसका मान 0 है? क्या हम गलती से नहीं सोचेंगे कि कुंजी शब्दकोश में मौजूद नहीं है? – jbx72487

+9

@ jbx72487 शब्दकोशों में वस्तुओं को अवश्य रखना चाहिए; 'objectForKey:' एक आईडी आईडी देता है - एक उद्देश्य-सी ऑब्जेक्ट के लिए एक सूचक। यदि आप संख्याओं को संग्रहीत कर रहे हैं, तो उन्हें ["बॉक्स किया गया"] (http://clang.llvm.org/docs/ObjectiveCLiterals.html) होना चाहिए [NSNumber] (https://developer.apple.com/library/ios /#documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/Reference/Reference.html)। भले ही NSNumber शून्य या गलत है, फिर भी यह एक वैध सूचक होगा और उपर्युक्त कोड सटीक रूप से अस्तित्व का पता लगाएगा। –

0

शाब्दिक वाक्य रचना आप के रूप में

static const NSString* kKeyToCheck = @"yourKey" 
if (xyz[kKeyToCheck]) 
    NSLog(@"Key: %@, has Value: %@", kKeyToCheck, xyz[kKeyToCheck]); 
else 
NSLog(@"Key pair do not exits for key: %@", kKeyToCheck); 
संबंधित मुद्दे

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