2010-03-11 9 views
13

मैं कोर डेटा एनएसएससेट के डेटा को सॉर्ट करना चाहता हूं (मुझे पता है कि हम इसे केवल सरणी के साथ ही कर सकते हैं लेकिन मुझे समझाएं ...)। मेरे पास एक इकाई उपयोगकर्ता है जिसकी इकाई रिश्ते के साथ कई संबंध हैं। एक नुस्खा में गुणों का नाम और आईडी है। मैं डेटा प्राप्त करना चाहते हैं, जैसे कि:कोर डेटा इकाई के एनएसएससेट को सॉर्ट करना - उद्देश्य-सी

NSArray *id = [[user.recipes valueForKey:@"identity"] allObjects]; 
NSArray *name = [[user.recipes valueForKey:@"name"] allObjects]; 

अगर मैं दोनों सरणियों में इंडेक्स को 1 पर वस्तु लेते हैं, वे एक ही नुस्खा के अनुरूप ...

धन्यवाद

उत्तर

40

आप पहले व्यंजनों को सॉर्ट करने की जरूरत है: हालांकि, यह आस-पास काम करने के लिए तुच्छ है

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]; 

NSArray *sortedRecipes = [[recipes allObjects] sortedArrayUsingDescriptors:sortDescriptors]; 

आप तो हल कर व्यंजनों सरणी से विशेषताओं की एक सरणी निकाल सकते हैं और परिणाम हल कर में रहेगा आदेश:

NSArray *sortedNames = [sortedRecipes valueForKey:@"name"]; 
NSArray *sortedIdentities = [sortedRecipes valueForKey:@"identity"]; 
+0

धन्यवाद यह विधि अच्छी तरह से काम करती है ... मैंने बस "आईडी" के साथ डिस्क्रिप्टर @ "नाम" में बदल दिया है और आईफोन में एक वर्णनकर्ता बनाने के लिए कोई उदाहरण विधि नहीं है इसलिए मैंने विधि सॉर्ट डिस्क्रिप्टर विथकी को initWithKey के साथ बदल दिया और रिलीज़ किया यह! – ncohen

7

आप तो उन्हें एक ही क्रम में होना चाहते हैं, तो आपको मूल्यों को निकालने से पहले उन्हें क्रमबद्ध करने की आवश्यकता है। उदाहरण:

NSArray * sortedRecipes = [user.recipes sortedArrayUsingDescriptors:arrayOfSortDescriptors]; 
NSArray * identities = [sortedRecipes valueForKey:@"identity"]; 
NSArray * names = [sortedRecipes valueForKey:@"name"]; 

संपादित

मेरे क्षमायाचना। मुझे अभी एहसास हुआ कि यह एक आईफोन सवाल है, और NSSet में आईफोन पर sortedArrayUsingDescriptors: नहीं है।

NSArray * recipes = [user.recipes allObjects]; 
NSArray * sortedRecipes = [recipes sortedArrayUsingDescriptors:arrayOfSortDescriptors]; 
.... 
+1

समस्या यह है कि user.recipes एक NSSet है ... तो यह काम नहीं करेगा! और मैं arrayOfSortDescriptors को कैसे क्रमबद्ध करूं? thx – ncohen

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