2009-12-24 8 views
24

मुझे लूप से शब्दकोशों की एक सरणी बनाने के लिए एक सरणी में डेटा संरचना जोड़ने में कठिनाई हो रही है। मुझे बस पता था कि एनएसएमयूटेबलएरे में addObject केवल पॉइंटर जोड़ें। मैं जानना चाहता हूं कि मेरा लक्ष्य कैसे प्राप्त किया जाए।एक लूप में एनएसएमयूटेबलएरे को एनएसएमयूटेबल डिक्शनरी का ऑब्जेक्ट कैसे जोड़ें

यहाँ मेरी कोड है:

NSMutableDictionary *woRows = [[NSMutableDictionary alloc] init]; 
NSMutableArray *workOrders = [[NSMutableArray alloc] init]; 
while ([theScanner isAtEnd] == NO) 
{ 
    if ([theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol1] && 
     [theScanner scanString:@"{US}" intoString:NULL] && 
     [theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol2] && 
     [theScanner scanString:@"{US}" intoString:NULL] && 
     [theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol3]&& 
     [theScanner scanString:@"{RS}" intoString:NULL]) 
    { 
     [woRows setValue:tempCol1 forKey:@"hours"]; 
     [woRows setValue:tempCol2 forKey:@"colMain"]; 
     [woRows setValue:tempCol3 forKey:@"colAddtl"]; 

     [workOrders addObject:woRows]; 
     [woRows release]; 
    } 
} 
[tmpString release]; 
[jobs addObject:workOrders]; 
[workOrders release]; 

ऊपर कोड से, सरणी workOrders केवल जोड़ा पिछले वस्तुओं के डुप्लिकेट होगा। मैं यहां सही डेटा प्रदर्शित करने के लिए प्रगति करने में सक्षम नहीं हूं।

किसी भी मदद की सराहना की जाएगी।

धन्यवाद

उत्तर

27

[workOrders addObject:[woRows copy]];

+1

यह काम किया, और मुझे आपके दृष्टिकोण में पसंद है और मेरे कोड में इस्तेमाल किया जा रहा है। कोई विचार क्यों मैं आपके जवाब पर वोट नहीं दे सकता? यह वापस शून्य –

7
कर

पाश के अंदर अपने शब्दकोश निर्माण कोड के लिए कदम

woRows = [[NSMutableDictionary alloc] init]; 

आप एक ही वस्तु का उपयोग कर रहे (हालत अगर अंदर) की कोशिश ...

+1

में बदल गया धन्यवाद, यह काम किया। कोई विचार क्यों मैं आपके जवाब पर वोट नहीं दे सकता? –

+0

यहां तक ​​कि आपके पास मतदान करने के लिए आवश्यक न्यूनतम प्रतिष्ठा नहीं है .... –

20

मुझे पता है , यह थोड़ा देर हो चुकी है और यहां तक ​​कि आप जो भी मांग रहे थे, लेकिन मुझे लगता है कि आपके बजाय [woRows setObject:forKey:] का उपयोग करना चाहते थे 210।

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