2009-09-17 12 views
10

UITableView में NSSet की सामग्री को प्रदर्शित करने के लिए आप कैसे आगे बढ़ेंगे?UITableView में एनएसएससेट कैसे प्रदर्शित करें?

जैसा कि आप जानते हैं, तालिका दृश्य किसी दिए गए पंक्ति पर तत्व के लिए पूछेगा, लेकिन NSSet तत्वों का आदेश नहीं दिया गया है, यह अच्छी तरह से मिश्रण नहीं करता है।

मेरा वर्तमान समाधान NSSet के माध्यम से फिर से शुरू करना है जब तक कि मैं किसी दिए गए इंडेक्स में तत्व तक नहीं पहुंच जाता, लेकिन यह वास्तव में सही नहीं लगता है।

आप पूछ सकते हैं कि मैं इसके बजाय NSArray का उपयोग क्यों नहीं करता हूं। ऐसा इसलिए है क्योंकि मैं कोर डेटा का उपयोग कर रहा हूं, जो तत्वों के संग्रह को संग्रहीत करने के लिए NSSet एस का उपयोग करता है।

किसी भी मदद की सराहना की जाएगी।

उत्तर

28

चूंकि आप केवल तत्व प्रदर्शित कर रहे हैं, NSSet क्यों न लें, और NSArray प्राप्त करने के लिए -[allObjects] पर कॉल करें?

यदि आपका डेटा बदलता है, तो आपको NSSet के साथ भी, फिर भी फिर से प्राप्त करना होगा, और NSSet से प्रारंभिक रूपांतरण के अलावा, सरणी का उपयोग करना काफी तेज़ है।

+2

मुझे अब इतना बेवकूफ लगता है कि मैंने आपका जवाब पढ़ा है;) –

+7

तो क्या हम सुरक्षित रूप से मान सकते हैं कि "ऑल ऑब्जेक्ट्स" को लगातार 2 कॉल उसी ऑर्डर में तत्व लौटाते हैं (जब एनएसएसटी नहीं बदला गया है)? क्योंकि दस्तावेज़ केवल इतना कहता है कि "आदेश परिभाषित नहीं किया गया है", यह उल्लेख नहीं करता है कि आदेश स्थिर है। और यदि यह अब स्थिर है, तो क्या आप वाकई भविष्य में आईओएस संस्करणों में स्थिर रहेंगे? मैं उन कार्यों को प्राप्त करने के लिए इस फ़ंक्शन पर भरोसा करने के बारे में इतना निश्चित नहीं हूं कि मैं तालिका दृश्य में प्रदर्शित कर सकता हूं। –

+0

@ क्रिस्टोफफोन्डैची बस एक बार 'ऑल ऑब्जेक्ट्स' को कॉल करें और परिणाम को एक चर में तब तक स्टोर करें जब तक वीसी बर्खास्त न हो जाए, या जब तक कि सेट फिर से बदल न जाए। –

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