अटकलें, लेकिन:
क्योंकि NSSet बनाया गया था जब केवल अन्य प्रमुख संग्रह प्रकार NSArray, जो था (और अब भी है, काफी हद तक) सबसे आम संग्रह प्रकार था। तो "allObjects" नामक एक विधि स्पष्ट रूप से एक एनएसएआरएआरई वापस कर देगी। मुख्य रूप से, NSArray और NSSet -
जब NSOrderedSet और अधिक हाल ही में जोड़ा गया था, यह पहले संग्रह के अस्तित्व का सामना करना पड़ा। तो एक "allObjects" विधि संदिग्ध होगा। Ergo में दो विधियां हैं, -एरे और -सेट।
और/या, -array और सेट तरीकों क्या संभावना आंतरिक रूप से उपयोग एक या समान वर्ग हैं करने के लिए प्रॉक्सी लौट आते हैं। तो एक कार्यात्मक अर्थ में वे थोड़ा अलग हैं - उन प्रॉक्सी मूल NSOrderedSet पर उत्परिवर्तन देखेंगे। - दूसरी ओर सभी ऑब्जेक्ट्स नहीं - यह वास्तव में एक स्वतंत्र सरणी बनाता है, क्योंकि इसके आंतरिक भंडारण की संभावना हैशटेबल या इसी तरह की जिसे आसानी से प्रॉक्सी नहीं किया जाता है।
स्रोत
2012-11-20 07:42:21
कारण NSSet आदेश दिया नहीं है, इसलिए allObject मतलब है कि यह आदेश दिया नहीं किया जाएगा, यह यादृच्छिक है, लेकिन NSOrderedSet एक वैकल्पिक सरणी है। "आप एक विकल्प के रूप आदेश दिया सेट का उपयोग सरणियों के लिए जब तत्वों का क्रम महत्वपूर्ण और परीक्षण में प्रदर्शन है एक वस्तु सेट में निहित है कि क्या एक सरणी की सदस्यता के लिए एक consideration- परीक्षण एक सेट की सदस्यता के लिए परीक्षण की तुलना में धीमी है सकते हैं। " – Dave
@ डेव मुझे विश्वास है कि यह जवाब है। ऊपर रखो। – CodaFi
लेकिन इसी तरह के तर्क से आप पूछ सकते हैं कि विधि का नाम क्यों है -सेट, नहीं -ऑर्डर्डसेट या -ऑल ऑब्जेक्ट्स? –