2013-02-22 50 views
22

मेरे पास एक सरणी है जिसमें शब्दकोश वस्तुएं होती हैं। प्रत्येक शब्दकोश में कुंजी आम हैं। अब मैं उस कुंजी के सभी मूल्य प्राप्त करना चाहता हूं। मुझे इन मानों को पुनरावृत्ति के साथ मिला है, लेकिन मैं कुछ सीधे आगे की ओर या एक डिफ़ॉल्ट विधि की तलाश कर रहा हूं जो यह काम करता है।एनएसएआरएआरई में प्रत्येक NSDictionary से विशिष्ट कुंजी के लिए मैं सभी मान कैसे प्राप्त कर सकता हूं?

क्या आप कृपया इस उद्देश्य को पूरा करने वाली एक डिफ़ॉल्ट विधि प्राप्त करने में मेरी सहायता कर सकते हैं? धन्यवाद।

डेटा संरचना इस तरह है:

<array> 
    <dict> 
     <key>Match</key> 
     <string>Football</string> 
     <key>Stadium</key> 
     <string>XXXXX</string> 
    </dict> 
    <dict> 
     <key>Match</key> 
     <string>HOCKY</string> 
     <key>Stadium</key> 
     <string>XXXXX</string> 
    </dict> 
</array> 

मैं अब यह कर रहा हूं:

NSMutableArray * matches = [[NSMutableArray alloc] init]; 
     for (int i = 0; i< myArray.count; i++){ 
      [matches insertObject:[[myArray objectAtIndex:i] objectForKey:@"Match"] atIndex:i]; 
     } 
     [matchDataArray addObjectsFromArray:matches]; 

यह मुझे सही जवाब देता है। लेकिन मैं यह पुनरावृत्ति नहीं करना चाहता हूं। मुझे एक विधि चाहिए जो मुझे सरणी के सभी इंडेक्स से "मैच" कुंजी के सभी मान वापस कर देगी और एक बार में एक और सरणी में सहेज लेगी। नव निर्मित सरणी में केवल सरणी के सभी अनुक्रमणिका से मिलान कुंजी के मान होंगे।

क्या यह संभव है ??

उत्तर

65

वहाँ मुख्य मान कोडिंग के साथ एक साफ चाल है कि यह करता है:

NSArray *matches = [myArray valueForKey: @"Match"]; 

यहाँ कार्रवाई में एक उदाहरण है:

NSArray *anArray = @[ 
         @{@"aWord" : @"I"}, 
         @{@"aWord" : @"have"}, 
         @{@"aWord" : @"an"}, 
         @{@"aWord" : @"array"}, 
         @{@"aWord" : @"which"}, 
         @{@"aWord" : @"contains"}, 
         @{@"aWord" : @"dictionary"}, 
         @{@"aWord" : @"objects."}, 
         @{@"aWord" : @"Etc."}, 
         ]; 

NSArray *aWordArray = [anArray valueForKey:@"aWord"]; 

इस अंतिम पंक्ति के बाद, aWordArray में शब्द शामिल होंगे शब्दकोशों की मूल सरणी के समान ही क्रम।

+1

बहुत बहुत धन्यवाद। यह काम करता हैं। यह मेरे जीवन को आसान बनाता है। एक बार फिर धन्यवाद। :) – hgpl

+0

मूल्य –

+0

बूसा के आधार पर फ़िल्टर करने का कोई तरीका है - एक अनुमान का उपयोग करें और एक फ़िल्टर किए गए सरणी को वापस करें - – PruitIgoe