2012-12-06 30 views
6

के रूप में संग्रहीत ऑब्जेक्ट की संपत्ति द्वारा मैं NSMutableDictionary में डेटा संग्रहीत कर रहा हूं वेब सेवा द्वारा प्राप्त डेटा संग्रहीत करने के लिए।क्रमबद्ध करें NSDictionary मूल्य

मैं अल्फा ऑर्डर में डेटा प्रदर्शित करना चाहता हूं लेकिन जैसा कि हम शब्दकोश स्टोर डेटा को अपने तरीके से जानते हैं, इसलिए मुझे आईओएस 5 और आईओएस 6 के लिए अलग-अलग ऑर्डर मिल रहा है। आईओएस 5 यह ठीक है लेकिन आईओएस 6 में यह ऑर्डर बदलता है।

मैं मूल्य के रूप में int कुंजी और ऑब्जेक्ट संग्रहीत कर रहा हूं।

ऑब्जेक्ट में आईडी, नाम और विवरण शामिल है।

EX: 
    key value 
    1 - (12,bhgjksd,kijdh) 
    6 - (13,kjfd,ikjk) 
    2 - (14,ljiuhbdf,dsjhfj) 

मैं ऑब्जेक्ट.Name प्रॉपर्टी द्वारा अपना शब्दकोश कैसे क्रमबद्ध कर सकता हूं। या ऑब्जेक्ट.Name सॉर्टिंग ऑर्डर पर आधारित कुंजी प्राप्त करें।

मैं उस कुंजी को सॉर्ट नहीं करना चाहता हूं जिसे मैं ऑब्जेक्ट.Name पर सॉर्ट करना चाहता हूं जिसे ऑब्जेक्ट के रूप में मूल्य भाग में संग्रहीत किया जाता है।

.. मदद किसी भी तरह का स्वागत ..... अग्रिम धन्यवाद है

+0

आप http://stackoverflow.com/questions/8118932/how-can-i-sort-nsmutabledictionary-with-keys- इस पर एक नज़र हो सकता है मूल्य –

+1

हाय अमृत धन्यवाद समय है। लेकिन उस सवाल में वह कुंजी के आधार पर सॉर्टिंग करना चाहता है जबकि मैं मूल्य के आधार पर सॉर्ट करना चाहता हूं। – CRDave

उत्तर

6

इस प्रयास करें,

NSArray *sortedKeys = [dict keysSortedByValueUsingComparator: ^(id obj1, id obj2) { 

    return (NSComparisonResult)[obj1.name compare:obj2.name];; 
}]; 

आप sortedKeys सरणी में सभी चाबियाँ, के क्रम में सॉर्ट मिल जाएगा संपत्ति। आप [dict valueForKey:[sortedKeys objectAtIndex:i]] के रूप में शब्दकोश से मूल्य प्राप्त करने के लिए इन चाबियों का उपयोग कर सकते हैं। अधिक जानकारी के लिए कृपया check apple documentation देखें।

+0

धन्यवाद यह मेरी समस्या का समाधान करता है मैं इसे चाबियों से प्यार करता हूं SortedByValueUsingComparator। सबसे पहले मैंने इसे यहां से पाया http://stackoverflow.com/questions/11217421/sort-nsdictionary-keys-by-dictionary-value-into-an-nsarray?rq=1। मेरी मदद करने के लिए धन्यवाद। – CRDave

+0

यह मुझे एनएसएसटींग http://getsetgames.com/2009/12/10/iphonedev-advent-tip-10-string-comparison-using-nsstring/ – CRDave

+0

पर कैंपेयर करने में भी मदद करता है मुझे पता नहीं था कि मैं केवल एक ही जवाब स्वीकार कर सकता हूं तो मैं एक और जवाब चुनने के लिए जाओ। – CRDave

3
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"Object.Name" ascending:YES]; 
[items sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
इसके अलावा

,

NSArray *ordered = [myDictionary keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2){ 
    return [obj1.name compare:obj2.name]; 
}]; 
+0

मेरी मदद करने के लिए धन्यवाद। मैंने चाबियाँ द्वारा मेरी समस्या हल की है SortedByValueUsingComparator – CRDave

+1

यह मुझे एनएसएसटींग कैंपेयर करने में भी मदद करता है http://getsetgames.com/2009/12/10/iphonedev-advent-tip-10-string-comparison-using-nsstring/ – CRDave

+0

मैंने कॉपी नहीं किया आप, मैंने अभी 2-तरीकों से जवाब पोस्ट किया है। और यह ओपी तक, जिस तरह से वह चाहता है। यहां तक ​​कि आपके और मेरे उत्तर में कुछ अंतर भी हैं। अगर कोई मेरा जवाब स्वीकार करता है या नहीं तो मुझे परवाह नहीं है। यहां तक ​​कि मेरे लिए एक डाउनवोट भी ठीक होगा;) –

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