2012-05-07 7 views
16

मैं कोर डेटा के भीतर कार्यों की एक सूची है। मैं उन्हें एक NSFetchedResultsController का उपयोग कर UITableView में लाता हूं।क्षणिक sectionNameKeyPath और NSSortDescriptor NSFetchedResultsController

मैं एक कस्टम क्रम में कस्टम वर्गों की जरूरत है:

  1. समय से कर
  2. सक्रिय
  3. चल रहे
  4. स्थगित
  5. पूरा

निर्धारित करने के लिए क्या खंड एक काम से जाना चाहिए में मैं टी पर गणना की गई व्युत्पन्न क्षणिक विशेषता का उपयोग करता हूं वह सापेक्ष वस्तु में अन्य विशेषताओं के आधार पर उड़ता है।

दुर्भाग्य से आप एक तरह से एक लाने का अनुरोध द्वारा प्रयोग किया जाता वर्णनकर्ता के रूप में एक व्युत्पन्न मूल्य पारित नहीं कर सकते हैं। ऐसा इसलिए है क्योंकि एक fetch पहले से ही डेटा पर निर्भर करता है इसे लाने के लिए कहा जा रहा है। चिकन & अंडे।

मैं समझता हूँ कारण है कि मैं यह नहीं कर सकते, कि मुझे समस्या को हल मदद नहीं करता है!

मैं कोशिश की है:

  • उपवर्गीकरण NSFetchedResultsController करने के लिए 'customise creation of sections and index titles'। हो सकता है कि मैं यह गलत कर रहा हूं, हालांकि यह सिर्फ वर्गों के नामों और आदेशों को बदलता है, न कि उन वर्गों में कितनी चीजें हैं (जो महत्वपूर्ण है)।

  • प्रति अनुभाग पॉप्युलेटिंग सरणी और उन्हें तालिका में खिलााना (क्लंकी, धीमा अभी तक पूरी तरह से काम करता है)।

  • & स्थगित कार्य (जो काम करता है, लेकिन आदर्श नहीं है) को बाहर निकाल रहा है। इस तरह से मैं देय दिनांक से सॉर्ट कर सकता हूं और धारावाहिक मानों के माध्यम से सेक्शननामपैथ ड्राइव कर सकता हूं।

क्या किसी के पास कोई बेहतर विचार है? पहले से ही इस तरह के कुछ प्रश्न हैं, फिर भी उनमें से कोई भी साफ समाधान में नहीं आया है।

अग्रिम धन्यवाद!

चीयर्स

+3

एक विकल्प हो सकता है - यदि आप पहले से ही कोर डेटा से सभी कार्यों को ला रहे हैं - शायद आप प्रत्येक कार्य के लिए अतिरिक्त एट्रिब्यूट्स बचा सकते हैं - और यदि कार्य "फ्लाई पर" अनुभाग बदलता है - इसे कोर डेटा में भी अपडेट किया जा सकता है - इस प्रकार - एनीमेशन के साथ नियंत्रक द्वारा सही खंड में repositionedWillChangeContent: प्रतिनिधि तरीकों? या क्या मैं कुछ न कुछ भूल रहा हूं? –

उत्तर

10

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

मुझे लगता है कि आप अनावश्यक जानकारी संग्रहीत कर रहे हैं, लेकिन आपके तर्क को सरल बनाने के अलावा, यह सूचकांक भी होगा जो गति तक पहुंच जाएगा।

+0

हाय डेनिस, आपकी प्रतिक्रिया के लिए धन्यवाद। चूंकि बदलती तिथियां वस्तुओं को विभिन्न वर्गों में स्थानांतरित करती हैं, मुझे आश्चर्य है कि मैं अनुभाग विशेषता को कुशलता से कैसे बदलूं/बदलूं? – Timbo

+0

यह उत्तर + मेरे प्रश्न पर गंटिस ट्रेल्सैंड्स की टिप्पणी महान काम करती है :) – Timbo