2012-08-27 12 views
9

में NSDictionary प्रविष्टियों में जोड़ें मेरे पास एक लूप है जो किसी सरणी में शब्दकोशों की एक श्रृंखला के माध्यम से जाता है।एनएसएमयूटेबल डिक्शनरी

मैं सभी शब्दकोश प्रविष्टियों को कैसे समेकित कर सकता हूं क्योंकि यह लूप के माध्यम से NSMutableDictionary में जाता है?

मैंने addEntriesFromDictionary की कोशिश की, लेकिन यह काम नहीं कर रहा है। आपकी सहायता के लिए धन्यवाद.

for (int i=0; i<sections.count; i++){ 

    formElements = [[sections objectAtIndex:i]objectForKey:@"Dictionary"];   
} 
+0

आप कुंजी क्या बनना चाहते हैं? शायद मैं आपको याद करता हूँ। –

उत्तर

10
NSMutableDictionary * mutableDict = [NSMutableDictionary dictionary]; 

for (NSDictionary * formElements in sections) 
{ 
    [mutableDict addEntriesFromDictionary:formElements]; 
} 

यह सही होना चाहिए कि वे किसी भी कुंजी को साझा नहीं करते हैं।

+0

ठीक से क्या कर सकता हूं। मैं इसे आज़माउंगा और आपको बता दूंगा – user984248

12

आप नीचे दी गई शब्दकोश वस्तु को जोड़ सकते हैं।

NSMutableDictionary *mDict=[NSMutableDictionary dictionary]; 
    [mDict addEntriesFromDictionary:DictObj]; 
+0

अब क्या हो रहा है जब भी मैं लूप के माध्यम से जाता हूं, आखिरी शब्दकोष इसे जोड़ने से पहले इसे बदल देता है। तो मेरे पास पहले शब्दकोश में 5 प्रविष्टियां हैं, और दूसरी शब्दकोश में 2 प्रविष्टियां हैं। आखिरकार, मैं उन्हें 7 प्रविष्टियों की गिनती के लिए जोड़ना चाहता हूं। – user984248

+0

@ user984248 हां क्योंकि कुंजी एक-दूसरे को बदलती हैं। आपको शायद इसके लिए एक सरणी का उपयोग करना चाहिए और बस [सरणी addObject: formElements] –

+0

क्या मैं ऐसा कर सकता हूं और अंतिम परिणाम के रूप में शब्दकोश ले सकता हूं? मेरे पास एक कोड से प्रविष्टियों को पढ़ने के लिए मेरा पूरा कोड कॉन्फ़िगर किया गया है। – user984248

0

आप अपने शब्दकोशों को -objectEnumerator या NSDictionary के अन्य पद्धतियों के साथ समझा सकते हैं।

तो अपने लूप के अंदर आप अपने शब्दकोश को गिनती करते हैं और सभी ऑब्जेक्ट्स को एक बड़ी शब्दकोश में एक कुंजी जोड़ते हैं।

+0

क्या आप एक उदाहरण प्रदान कर सकते हैं? जो कुछ मैं ढूंढ रहा हूं वह है ... अंत में एक बड़ा शब्दकोश। – user984248

+0

हां, हालांकि, मैं पांडे_लेक्समैन समाधान बेहतर कर सकता हूं। मैं पूरी तरह से इस विधि को भूल गया। यदि आप अभी भी उदाहरण चाहते हैं तो मैं एक प्रदान कर सकता हूं लेकिन मुझे लगता है कि समस्या डुप्लिकेट कुंजी में है क्योंकि श्री अज़ुले ने कहा। मेरा समाधान आपको इससे कोई मदद नहीं करेगा। – Engeor

+0

मैं समझता हूं। उनके पास अलग-अलग कुंजी हैं। मुझे देखने दो कि मैं एक ऐरे – user984248

1
NSMutableDictionary *mDict=[[NSMutableDictionary alloc]init]; 
    NSMutableDictionary *mDict2=[[NSMutableDictionary alloc]init]; 

//later suppose you have 5 object in mDict and 2 object in mDict2. combine in this Way. 
    NSMutableArray *keys=[[NSMutableArray alloc]init]; 
    NSMutableArray *obj=[[NSMutableArray alloc]init]; 

    keys=[[mDict allKeys] mutableCopy]; 
    obj=[[mDict allValues] mutableCopy]; 

    [keys addObjectsFromArray:[mDict2 allKeys]]; 
    [obj addObjectsFromArray:[mDict2 allValues]]; 

    NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithObjects:obj forKeys:keys]; 
संबंधित मुद्दे