मैं NSDictionary में निहित मानों को पुनर्प्राप्त करना चाहता हूं। मैं यह करता हूँ :
MyCommon *pCommon = [MyCommon Singleton];
NSArray *result = pCommon.res; //res is define and retain in common.m. This is the array.
NSDictionary *dataItem = [result objectAtIndex:????];
मैं नहीं जानता कि मैं क्या बदल सकता हूं ????
धन्यवाद
उत्तर:
जवाब के लिए 2 № 1कुछ अन्य भाषाओं के विपरीत, उद्देश्य-सी Arrays और शब्दकोशों के बीच एक अंतर बनाता है।
एक सरणी एक संग्रह है, जो संख्या से अनुक्रमित है। एक शब्दकोश वस्तुओं द्वारा अनुक्रमित संग्रह होता है (आमतौर पर तार, लेकिन अन्य प्रकार भी हो सकते हैं)।
इसके शीर्ष पर, उद्देश्य-सी परिवर्तनीय और अपरिवर्तनीय सरणी और शब्दकोशों के बीच एक अंतर बनाता है। NSArray
तथा NSDictionary
बनाए जाने के बाद संशोधित नहीं किया जा सकता है। यदि आपको अपने संग्रह में ऑब्जेक्ट्स जोड़ने की ज़रूरत है, तो इसका उपयोग करें NSMutableArray
तथा NSMutableDictionary
बजाय।
NSArray * myArray = [[NSArray alloc] initWithObjects: @"text1", @"text2", @"text3", nil];
// you can then access a member by using:
NSString * text = [myArray objectAtIndex: 0];
NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
// add an object
[myDict setObject:@"text1" forKey:@"key1"];
[myDict setObject:@"text2" forKey:@"key2"];
// you can retrieve objects using:
text = [myDict objectForKey: @"key1"];
[myArray release];
[myDict release];
जवाब के लिए 0 № 2
कुंआ, result
है एक NSArray
, एक नहीं NSDictionary
, तो बस उस तत्व के सूचकांक को रखें जिसमें आप रुचि रखते हैं। Arrays को शून्य से पूर्णांक द्वारा अनुक्रमित किया जाता है।
अगर आपके मामले में result
है एक NSDictionary
और नहीं NSArray
, उपयोग objectForKey:
के बजाय विधि objectAtIndex:
.