2011-09-09 16 views
6

मैं निम्नलिखित कोड है:"एनएसएससेट ऑल ऑब्जेक्ट्स" यादृच्छिक क्रम करता है?

self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects] 

सरणी मेरी CoreData मॉडल से एक Band वस्तु रखती है। इसमें NSSet "छवियों" नामक संपत्ति के रूप में है।

अब मैं टाइमस्टैम्प के माध्यम से निर्धारित करने के लिए इस temporaryImageArray का उपयोग करता हूं कि छवियों को अद्यतन करने की आवश्यकता है या नहीं। मैं कुछ बहुत ही यादृच्छिक व्यवहार में आया हूं और मेरा प्रश्न अब है:

[NSSet allObjects] ऑब्जेक्ट्स को सेट से यादृच्छिक रूप से किसी क्रम में वापस लौटाता है?

क्या इसे रोकने के लिए या इसे क्रम में वापस करने का कोई तरीका है? यह मेरे कोड की जटिलता को बहुत कम कर देगा।

उत्तर

3

एक सेट में ऑर्डर नहीं है। हालांकि, 10.7 (शेर) में, NSOrderedSet कक्षा है। यह आईओएस 4.0 में उपलब्ध नहीं है।

+0

:-(वैसे भी धन्यवाद .. – Octoshape

10

NSSet एक अनियंत्रित संग्रह है। यह नहीं पता कि इसकी वस्तुओं का "आदेश" क्या है। इसलिए, जब आप -allObjects पर कॉल करते हैं, तो यह उन्हें अनियंत्रित करता है।

ध्यान दें कि -allObjects राज्यों पर प्रलेखन:

सेट के सदस्यों, या एक खाली सरणी युक्त अगर सेट में कोई सदस्य नहीं एक सरणी। सरणी में वस्तुओं का क्रम परिभाषित नहीं किया गया है।

(जोर मेरा)

3

NSOrderedSet और NSMutableOrderedSet अब iOS 5 में उपलब्ध बस ताकि आप अद्यतित रखा रहे हैं।

यहां link

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