2011-01-28 17 views
27

मेरे पास एक सरणी है जिसमें इसमें शब्दकोश शामिल हैं; तो मैं सरणी को कुंजीपटल कुंजी मानों के अनुसार कैसे क्रमबद्ध कर सकता हूं?शब्दकोशों वाले सरणी को कैसे क्रमबद्ध करें?

+1

यह प्रश्न Stackoverflow http://stackoverflow.com/questions/4767219/how-to-sort-a-nsarray-which-contains-nsdictionary/4767282#4767282 –

उत्तर

79

यदि सरणी में प्रत्येक तत्व एक निश्चित कुंजी युक्त एक शब्दकोश है, तो आप एक प्रकार वर्णक का उपयोग करके सरणी को सॉर्ट कर सकते हैं। उदाहरण के लिए, एक शब्दकोश एक प्रमुख युक्त "नाम" कहा जाता है, तो हर तत्व है:

NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name" 
    ascending:YES]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName]; 
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors]; 
+0

int मान को सॉर्ट करने के तरीके में मौजूद है? –

1

आप एक क्रमबद्ध शब्दकोश का उपयोग क्यों नहीं करते हैं जहां सॉर्ट किए गए तत्वों की संपत्ति डेटा संरचना के साथ पहले से आती है?

कृपया इसे बाहर की जाँच करना here

आशा इस मदद करता है।

0

Bavarious से ऊपर साझा जवाब में मदद मिली मुझ thing.If आप एक परिवर्तनशील सरणी उपयोग क्रमबद्ध करना चाहते हैं एक और जोड़ना चाहते हैं कुछ नीचे कोड

NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName]; 
NSMutableArray *sortedArray = [[NSMutableArray sortedArrayUsingDescriptors:sortDescriptors]mutableCopy]; 
10

इस लक्ष्य को हासिल करने के लिए अन्य तरीके से की तरह का उपयोग करेंगे sortedArrayUsingComparator: विधि

NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    return [[obj1 valueForKey:@"value"] compare:[obj2 valueForKey:@"value"]]; 
}]; 
-2
let arrDescriptor = NSSortDescriptor(key: "order", ascending: true) 
let sortDescriptors: NSArray = [arrDescriptor] 
let sortedArray = instancesubArray.sortedArray(using: sortDescriptors as [AnyObject] as [AnyObject] as! [NSSortDescriptor]) 

print(sortedArray) 
+0

कृपया यह संपादित करने के लिए [संपादित करें] लिंक का उपयोग करें कि यह कोड कैसे काम करता है और केवल कोड न दें, क्योंकि स्पष्टीकरण भविष्य के पाठकों की सहायता करने की अधिक संभावना है। यह भी देखें [उत्तर]। –

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