2009-10-05 20 views
8

मेरे पास दो प्रकार के आपत्तियां हैं: स्थान और इतिहास आइटम। मैं किसी भी इतिहास आइटम से जुड़े स्थानों को लाने की कोशिश कर रहा हूं, इसलिए स्थान के लिए मेरा fetch predicate "इतिहास। @ Count> 0" है, जो ठीक काम करता है।एनएसएसोर्ट डिस्क्रिप्टर और कई रिश्तों

मैं अपने नवीनतम इतिहास आइटम की तारीख तक एनएसएसोर्ट डिस्क्रिप्टर के साथ स्थान ऑब्जेक्ट्स को सॉर्ट करना भी चाहूंगा, जहां तक ​​मैं कर सकता हूं "इतिहास। @ Max.time", हालांकि यह निम्नलिखित को फेंकता है त्रुटि:

 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
    reason: 'Keypath containing KVC aggregate where there shouldn't be one; 
    failed to handle [email protected]' 

हैल्प प्लॉक्स?

+0

'location.history' एक सरणी/सेट है? (एक होने लगता है, लेकिन आपके पास एकवचन रूप है।) –

+0

यह एक बहुत से रिश्ते है जो इसका मतलब होगा। एकवचन रूप मेरा बुरा है, लेकिन मैं कुछ भी तोड़ने से बचने के लिए इस समय इसके साथ गड़बड़ नहीं करना चाहता। –

+2

जुनास, क्या आपने इसे समझ लिया? मैं एक ही स्थिति में हूं, और यह वही त्रुटि प्राप्त कर रहा हूं। धन्यवाद – kdbdallas

उत्तर

1

शायद सबसे अच्छा समाधान नहीं है, लेकिन आप हमेशा डेटा वापस खींच सकते हैं और तथ्य के बाद इसे सॉर्ट कर सकते हैं। Sorting and Filtering NSArray Objects पर एक नज़र डालें।

0

यहाँ, कुछ कोड मैं जहाँ मैं समान कर

NSError *error; 

if (![[self fetchedResultsController] performFetch:&error]) 
{ 
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; 
    [alert show]; 
} 
else 
{ 
    self.feedsArray = [fetchedResultsController fetchedObjects]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"[email protected]" ascending:NO]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 

    self.feedsArray = [feedsArray sortedArrayUsingDescriptors:sortDescriptors]; 

    [sortDescriptors release]; 
    [sortDescriptor release]; 

    NSInteger overviewAmount = [[feedsArray valueForKeyPath:@"@sum.unreadArticles"] integerValue]; 

    .... 
} 
+0

कोई विचार क्या हो सकता है हालांकि इसे ठीक किया हो सकता है? वास्तव में उस कोड में कुछ भी नहीं देख सकता जो ठीक हो सकता है ... –

+0

मुझे यकीन नहीं है ... क्या आपके पास अपनी संस्था का उत्थान है? मेरा दोनों ही हैं (इसलिए इकाई के ऊपर उदाहरण में मैं आचरण कर रहा हूं और लेख इकाई उप-वर्गीकृत है) मेरे पास लेखों के उप-वर्ग में कुछ खास नहीं है, इसलिए मुझे वास्तव में याद नहीं है कि मैंने इसे उपclass क्यों किया, तो शायद यही कारण है कि ... मेरे लेखों में एक और विचार है एंटीटी विशेषता पोस्टडेट जो मैं @max पर करता हूं, मैंने मॉडल में अनुक्रमित करने के लिए सेटअप किया है। शायद कोशिश करो। यह भी सुनिश्चित करें कि आपके दिनांक मान का डिफ़ॉल्ट मान है।मैं उपयोग करता हूं: 1 9 80-01-01 00:00:01 – kdbdallas

4

AFAIK है वह यह है कि आप केवल collections (NSArray, NSSet साथ collection operators, Key-Value Coding Programming Guide में वर्णित का उपयोग करना चाहिए, अपने तरह वर्णनकर्ता के प्रमुख रास्तों के लिए NSDictionary)।

आपको अपने अनुरोध वर्णनकर्ताओं (NSFetchRequest) के साथ अपने सॉर्ट डिस्क्रिप्टर के प्रमुख पथों के लिए संग्रह ऑपरेटर का उपयोग नहीं करना चाहिए।

@kdbdallas NSArray को सॉर्ट करने के लिए सही ढंग से संग्रह ऑपरेटर का उपयोग करता है। वह एक fetch अनुरोध के प्रकार वर्णनकर्ता निर्दिष्ट करने के लिए इसका उपयोग नहीं कर रहा है।

यह मीठा होगा हालांकि संग्रह ऑपरेटर ने मुख्य पथ निर्दिष्ट करने के लिए काम किया था जिससे अनुरोध प्राप्त करने के लिए क्रमबद्ध किया गया था। कृपया इस सुविधा अनुरोध को http://bugreport.apple.com/ पर सबमिट करें। जितना अधिक बताया गया है, उतना ही अधिक वे इसका समर्थन करेंगे।

+0

मैंने ऐप्पल के साथ इस मुद्दे को दायर किया: आईडी: 9758650, शीर्षक: संग्रह ऑपरेटर कोर डेटा, उत्पाद: आईफोन एसडीके, वर्गीकरण: संवर्धन, उत्पत्ति दिनांक: 12-जुलाई के साथ काम करना चाहिए -2011 12:26 पूर्वाह्न, राज्य: – ma11hew28

+0

खोलें मैंने एक ही शीर्षक के साथ rdar: // 10468062 सबमिट किया है और विभागों और कर्मचारियों के साथ एक उदाहरण दिया है। जितना अधिक लोग इसका सुझाव देते हैं, बेहतर! – theory

+0

खुले रडार पर बग रिपोर्ट 10468062 नहीं मिल सका। यह वास्तव में मदद करेगा ताकि मैं इसे आसानी से डुप्लिकेट कर सकूं। – samvermette

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