2010-10-14 10 views
7

मैं इकाई द्वारा NSFetchRequest के परिणामों को समूहित करना चाहता हूं। सभी संस्थाएं एक ही अमूर्त माता-पिता को साझा करती हैं। उदाहरण के लिए:अतिरिक्त विशेषताओं को जोड़ने के बिना `NSFetchRequest` में सबक्लास द्वारा क्रमबद्ध करना संभव है?

animal 
| 
|-cat 
| 
|-dog 

NSFetchRequestincludesSubentitiesanimal करने के लिए TRUE और entity सेट स्थापित किया है। sectionNameKeyPath एनएसएफटेड रीसेट्स कंट्रोलर को entity.name पर सेट करना संभव है, लेकिनके साथ sortDescriptors संग्रहीत विशेषताओं (यानी डेटाबेस में डेटा, कक्षाओं पर विधियों पर लागू नहीं))। इसलिए इकाई प्रकार द्वारा समूह करने का एकमात्र तरीका सुपरक्लास में एक विशेषता जोड़ना है जो उप-वर्ग स्वयं को पहचानने के लिए उपयोग कर सकते हैं।

यह पागल लगता है क्योंकि यह विरासत की उपयोगिता को कम करता है। मैंने SQLite डेटाबेस में एक नज़र डाली थी और इकाई प्रकार को उसी तालिका में गुणों के रूप में संग्रहीत किया जाता है, इसलिए आवश्यक डेटा पहले से ही मौजूद है।

सारांश में: अतिरिक्त गुण जोड़ने के बिना NSFetchRequest में सबक्लास द्वारा सॉर्ट करना संभव है?

+0

क्या आपको कभी इस प्रश्न का उत्तर मिला? – epologee

+0

@epologee। नहीं, मुझे कोई समाधान नहीं मिला है। मुझे लगता है कि करने के लिए सबसे अच्छी बात यह है कि 'fetchedResultsController.sections' को फिर से क्रमबद्ध करें या' NSFetchedResultsController' का उपयोग न करें। –

+0

मैंने कई NSFetchedResultsController उदाहरणों का उपयोग करने का प्रयास किया है, प्रत्येक इकाई के लिए एक: एस। अगर किसी को इसका जवाब मिल जाए तो सवाल को पसंदीदा बनाएं। चीयर्स। – epologee

उत्तर

2

मुझे लगता है कि उत्तर नहीं है।

स्टोर (एसक्यूएललाइट स्टोर के लिए) में प्राप्त और छंटनी होती है, इसलिए गुणों को डेटा मॉडल का हिस्सा बनने की आवश्यकता होती है। कोर डेटा प्रोग्रामिंग गाइड (पर्सिस्टेंट स्टोर फीचर्स) से:

फ़ेचिंग और स्टोर के प्रकार के बीच कुछ इंटरैक्शन हैं। एक्सएमएल, बाइनरी और इन-मेमोरी स्टोर्स में, भविष्यवाणी और सॉर्ट डिस्क्रिप्टर का मूल्यांकन ऑब्जेक्टिव-सी में किया जाता है, जिसमें सभी कोको की कार्यक्षमता तक पहुंच होती है, जिसमें एनएसएसटींग पर तुलना विधियां शामिल हैं। दूसरी तरफ, एसक्यूएल स्टोर, एसक्यूएल को predicate और सॉर्ट डिस्क्रिप्टर संकलित करता है और परिणाम डेटाबेस में ही मूल्यांकन करता है। यह मुख्य रूप से प्रदर्शन के लिए किया जाता है, लेकिन इसका मतलब है कि गैर-कोको पर्यावरण में मूल्यांकन होता है, और इसलिए कोको पर भरोसा करने वाले वर्णनकर्ता (या अनुमानित) सॉर्ट नहीं कर सकते हैं।

भी

इसके अलावा आप क्षणिक गुण SQLite दुकान का उपयोग करने पर क्रमबद्ध नहीं कर सकते।

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