उद्देश्य C, C की तरह, कोई नामस्थान नहीं है। इसका मतलब यह है कि अगर किसी ने पहले से ही किसी फ़ंक्शन foo
या वर्ग को परिभाषित किया है Bar
, तो यह विश्व स्तर पर अद्वितीय होना चाहिए और आप इसे परिभाषित नहीं कर सकते। यह तब हो सकता है जब आपके पास अपना कोड होने के बाद बहुत अधिक सिरदर्द हो और फिर एक और पुस्तकालय जोड़ें और अचानक चीजें अजीब जगहों पर टूटें।
वहाँ है इस के लिए एप्पल द्वारा प्रस्तुत एक दिशानिर्देश कन्वेंशनों: उद्देश्य सी के साथ प्रोग्रामिंग iOS डेवलपर पुस्तकालय की धारा:
कुछ नाम आपके ऐप के अनूठे होने चाहिए
हर बार जब आप एक नया प्रकार, प्रतीक या पहचानकर्ता बनाते हैं, तो आपको पहले उस दायरे पर विचार करना चाहिए जिसमें नाम अद्वितीय होना चाहिए। कभी-कभी यह गुंजाइश पूरी तरह से हो सकती है, जिसमें इसके जुड़े ढांचे भी शामिल हैं; कभी-कभी दायरा सिर्फ एक संलग्न वर्ग या यहां तक कि कोड के एक ब्लॉक तक ही सीमित होता है।
क्लास के नाम एक पूरे ऐप के लिए अद्वितीय होने चाहिए
उद्देश्य-सी कक्षाओं को विशिष्ट रूप से न केवल उस कोड के भीतर नामित किया जाना चाहिए जिसे आप किसी परियोजना में लिख रहे हैं, बल्कि आपके द्वारा शामिल किए जा सकने वाले किसी भी ढाँचे या बंडलों में भी। एक उदाहरण के रूप में, आपको ViewController या TextParser जैसे सामान्य वर्ग के नामों का उपयोग करने से बचना चाहिए क्योंकि यह संभव है कि आपके ऐप में शामिल एक फ्रेमवर्क सम्मेलनों का पालन करने और समान नामों के साथ कक्षाएं बनाने में विफल हो सकता है।
वर्ग नामों को अद्वितीय रखने के लिए, सम्मेलन सभी वर्गों पर उपसर्गों का उपयोग करना है। आपने देखा होगा कि कोको और कोको टच क्लास नाम आमतौर पर एनएस या यूआई के साथ शुरू होते हैं। इस तरह के दो-अक्षर उपसर्ग ऐप्पल द्वारा फ्रेमवर्क कक्षाओं में उपयोग के लिए आरक्षित हैं। जैसा कि आप कोको और कोको टच के बारे में अधिक जानते हैं, आप कई अन्य उपसर्गों का सामना करेंगे जो विशिष्ट रूपरेखाओं से संबंधित हैं:
...
आपकी अपनी कक्षाओं को तीन अक्षर उपसर्गों का उपयोग करना चाहिए। ये आपकी कंपनी के नाम और आपके ऐप के नाम या आपके ऐप के भीतर एक विशिष्ट घटक के संयोजन से संबंधित हो सकते हैं। एक उदाहरण के रूप में, यदि आपकी कंपनी को व्हिस्परिंग ओक कहा जाता था, और आप ज़ेबरा आश्चर्य नामक एक गेम विकसित कर रहे थे, तो आप अपने वर्ग उपसर्ग के रूप में WZS या WOZ चुन सकते हैं।
इसलिए, वे पुस्तकालयों कि आप इस सम्मेलन को तोड़ने का उल्लेख करते हैं, लेकिन उद्देश्य सी के नाम स्थान की कमी की समस्या के दिल में मिलता है।
NSHipster द्वारा आगे पढ़ना नामकरण
एक उद्देश्य-सी नाम स्थान टकराव को हल करने का सबसे अच्छा तरीका क्या है?
IOS उद्देश्य-सी कोड में नामस्थान का उपयोग कैसे करता है?
;-)