आमतौर पर enum
परिभाषा यह इंगित करता है कि यह bit mask है। गणना के प्रत्येक सदस्य के पास एक अद्वितीय मूल्य होता है लेकिन इसका अर्थ केवल एक बिट सेट होता है, जिसका अर्थ है कि जब आप कई मानों को जोड़ते हैं, तो आप अभी भी यह निर्धारित करने में सक्षम हैं कि कौन से बिट सेट किए गए हैं।
उदाहरण के लिए, इस 32-बिट पूर्णांक बाइनरी में प्रतिनिधित्व मान:
0000 0000 0000 0000 0000 0001 0000 0000
8 बिट सेट कर दिया जाता है, जो enum मूल्य NSBinarySearchingFirstEqual
से मेल खाती है, के बाद से मूल्य 1 8 बिट स्थानांतरित कर दिया करने के लिए छोड़ दिया समाप्त होता है 8 बिट जा रहा है (यह मानते हुए आप 0 से अपने बिट्स आदेश)
0000 0000 0000 0000 0000 0101 0000 0000
यह पिछले 32-बिट पूर्णांक 2 बिट्स सेट कर रहे हैं कि, 8 वीं और 10 वीं है। ये दो बिट्स NSBinarySearchingFirstEqual
और NSBinarySearchingInsertionIndex
से मेल खाते हैं।
यदि आप बिट स्थानांतरण से अपरिचित हैं, तो Wikipedia article पर एक नज़र डालें, जिसमें कुछ उपयोगी आरेख हैं।
टाइप परिभाषा का अर्थ है कि NSBinarySearchingOption
NSUInteger
प्रकार का है। अनिवार्य रूप से वे एक ही बात हैं, लेकिन एक अलग प्रकार को परिभाषित करके यह स्पष्ट हो जाता है कि इस प्रकार के तर्क के लिए किस प्रकार के मूल्य प्रदान किए जाते हैं।
"यदि आप एनएसबीनरी सर्चिंग फर्स्ट एक्वाल और एनएसबीनरी सर्चिंगलास्ट एक्वाल दोनों निर्दिष्ट करते हैं, तो एसडीके दस्तावेज़ से एक एनएसआईएनवालिडअर्ग्यूमेंट अपवाद" फेंकता है। –