NS उपसर्ग का क्या अर्थ है?


578

कोको / कोको टच में कई वर्गों में एनएस उपसर्ग है। इसका क्या मतलब है?

जवाबों:


456

यह NeXTSTEP विरासत से है।


7
... या शायद नेक्स्ट / सन हेरिटेज (सूर्य ओपनस्टेप कंसोर्टियम में भागीदार था)
बैरी वार्क

27
हां बिल्कुल। यह सब खूबसूरती से दूसरे जवाबों में दिया गया है, इसीलिए मैंने उस जानकारी को कॉपी करने की जहमत नहीं उठाई। क्षमा करें यदि यह किसी को नाराज करता है - मुझे कोई आपत्ति नहीं है यदि स्वीकृत उत्तर दूसरों में से किसी एक को बदलता है (यदि यह संभव है - कभी भी जाँच नहीं की गई है)।
ओलाफ कोक

2
मैं और अधिक देखना चाहता हूं, लेकिन
NeXTSTEP

784

कोको फ्रेमवर्क के लिए मूल कोड NeXTSTEP लाइब्रेरीज़ फाउंडेशन और AppKit (उन नामों को अभी भी Apple के कोको फ्रेमवर्क द्वारा उपयोग किया जाता है) से आया है, और नेक्स्टस्टेप इंजीनियरों ने एनएस के साथ अपने प्रतीकों को उपसर्ग करना चुना।

क्योंकि ऑब्जेक्टिव-सी C का एक एक्सटेंशन है और इस तरह C ++ की तरह नाम स्थान नहीं है, इसलिए प्रतीकों को एक अद्वितीय उपसर्ग के साथ उपसर्ग करना चाहिए ताकि वे टकराएं नहीं। यह एक रूपरेखा में परिभाषित प्रतीकों के लिए विशेष रूप से महत्वपूर्ण है।

यदि आप एक आवेदन पत्र लिख रहे हैं, जैसे कि आपका कोड केवल आपके प्रतीकों का उपयोग करने की संभावना है, तो आपको इस बारे में चिंता करने की आवश्यकता नहीं है। लेकिन अगर आप दूसरों के उपयोग के लिए एक फ्रेमवर्क या लाइब्रेरी लिख रहे हैं, तो आपको अपने प्रतीकों को एक अद्वितीय उपसर्ग के साथ भी उपसर्ग करना चाहिए। कोकोआडेव का एक पृष्ठ है जहां कोको समुदाय के कई डेवलपर्स ने अपने "चुने हुए" उपसर्गों को सूचीबद्ध किया है। आपको यह SO चर्चा सहायक भी लग सकती है ।


150

N eXT S TEP या N eXTSTEP / S संयुक्त राष्ट्र जो आप पूछ रहे हैं पर निर्भर करता है।

कुछ समय के लिए ओपनस्टेप में रवि का काफी बड़ा निवेश था। इससे पहले कि सूर्य ने तस्वीर को नींव में सबसे अधिक चीजों में प्रवेश किया, भले ही इसे वापस नींव के रूप में नहीं जाना जाता था , एनएक्स टी के लिए एनएक्स उपसर्ग किया गया था , और कुछ समय पहले ही सूर्य ने तस्वीर में प्रवेश किया और सब कुछ एनएस में बदल दिया गया था । एस सबसे अधिक संभावना है तो सूर्य के लिए खड़ा नहीं किया था लेकिन उसके बाद सूर्य आम सहमति में कदम रखा है कि यह सूर्य के लिए खड़ा था उनकी भागीदारी का सम्मान किया गया।

मेरे पास वास्तव में इसके लिए एक संदर्भ था लेकिन मैं इसे अभी नहीं खोज सकता। मैं पोस्ट को अपडेट करूंगा / पाऊंगा जब मुझे फिर से मिल जाएगा


4
मैंने एक बहुत विश्वसनीय स्रोत से एक ही कहानी सुनी है; मुझे पूरा यकीन है कि यह यहाँ सबसे सटीक उत्तर है।
टायलर


@SimonWoodside लिंक मृत है।
दिंसडेल

इंटरनेट आर्काइव ऑफ़ रेफरेंस: web.archive.org/web/20151008121657/http://www.cocoabuilder.com/…
साइमन वुडसाइड

53

यह NextStep (= NS) धरोहर है। नेक्सट कंप्यूटर कंपनी थी जिसे 1985 में Apple छोड़ने के बाद स्टीव जॉब्स ने बनाया था, और NextStep यह ओब्ज-सी भाषा और रनटाइम के साथ मिलकर ऑपरेटिंग सिस्टम (UNIX आधारित) था। साथ में यह पुस्तकालय और उपकरण है, नेक्स्टस्टेप को बाद में ओपनस्टेप का नाम दिया गया (जो कि एक एपीआई पर भी नाम था जिसे NeXT ने सूर्य के साथ मिलकर विकसित किया था), जो बाद में कोको बन गया।

ये अलग-अलग नाम वास्तव में काफी भ्रामक हैं (विशेषकर चूंकि कुछ नाम केवल भिन्न होते हैं जिनमें वर्ण ऊपरी या निचले मामले हैं ..), इसे स्पष्टीकरण के लिए आज़माएं:

TheMerger OpenstepConfusion


4
मैं शपथ ले सकता था Apple ने उसे विभिन्न कारणों से निकाल दिया।
निधि मोनिका का मुकदमा

43

Apple के डेवलपर डॉक्स से:

ऐतिहासिक नोट: यदि आप सोच रहे हैं कि आपके द्वारा सामना की जाने वाली कक्षाओं में से कई में एनएस उपसर्ग है, तो यह कोको और कोको टच के पिछले इतिहास के कारण है। कोको ने जीवन की शुरुआत की क्योंकि एकत्रित फ्रेमवर्क नेक्सएक्सटीप ऑपरेटिंग सिस्टम के लिए ऐप का निर्माण किया। जब 1996 में Apple ने NeXT को वापस खरीदा, तो मौजूदा वर्ग के नामों सहित, बहुत से NXTStep को OS X में शामिल कर लिया गया। कोको टच को कोको के आईओएस समकक्ष के रूप में पेश किया गया था; कुछ कक्षाएं कोको और कोको टच दोनों में उपलब्ध हैं, हालांकि प्रत्येक प्लेटफॉर्म के लिए बड़ी संख्या में कक्षाएं भी हैं। NS और UI (iOS पर उपयोगकर्ता इंटरफ़ेस तत्वों के लिए) जैसे दो-अक्षर उपसर्ग Apple द्वारा उपयोग के लिए आरक्षित हैं।

स्रोत: ऑब्जेक्टिव-सी के साथ प्रोग्रामिंग


23

से Cocoa_ (एपीआई) विकिपीडिया :

(महत्व दिया)

कोको कक्षाएं संक्षिप्त रूप से "एनएस" से शुरू होती हैं ( ओपनस्टेप के नेक्सटी-सन निर्माण के लिए खड़ी होती हैं , या ओपनस्टेप ढांचे के लिए मूल स्वामित्व शब्द के लिए, एनएक्सटीएसटीईपी ): एनएसएसट्रिंग, एनएसएर्रे, आदि।

फाउंडेशन किट , या अधिक सामान्यतः बस फाउंडेशन , पहली बार OpenStep में दिखाई दिया । मैक ओएस एक्स पर, यह कोर फाउंडेशन पर आधारित है। फाउंडेशन एक सामान्य वस्तु-उन्मुख पुस्तकालय है जो स्ट्रिंग और मूल्य में हेरफेर, कंटेनर और पुनरावृत्ति, वितरित कंप्यूटिंग, रन लूप, और अन्य फ़ंक्शन प्रदान करता है जो सीधे ग्राफिकल यूजर इंटरफेस से बंधे नहीं हैं। "एन एस" उपसर्ग , सभी वर्गों और ढांचे में स्थिरांक के लिए इस्तेमाल किया, से आता है कोको के OpenStep विरासत है, जो संयुक्त रूप से विकसित किया गया था नेक्स्ट और सूर्य


विकिपीडिया यहाँ गलत है। फ़ाउंडेशन किट सबसे पहले एंटरप्राइज ऑब्जेक्ट्स फ्रेमवर्क में दिखाई दिया , जो ओपनस्टेप से पहले होता है। संयोग से फाउंडेशन का NeXT संस्करण एक CoreFoundation- जैसे सी एपीआई पर आधारित था, लेकिन मैक ओएस एक्स तक इसे सार्वजनिक इंटरफ़ेस के रूप में उजागर नहीं किया गया था।

@ user23743, मुझे नहीं लगता कि आप सही हैं। EOF, OPENSTEP ऑपरेटिंग सिस्टम को दर्शाता है, लेकिन OpenStep API को नहीं। ईओएफ प्रलेखन जिसे आप सीधे (संदर्भ ओपनस्टेप) से जोड़ते हैं [ cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/… , और वे दोनों 1994 में जारी किए गए थे।
AriX 25:14

12

जब NeXT नेक्स्टस्टेप एपीआई (NEXTSTEP ऑपरेटिंग सिस्टम के विपरीत) को परिभाषित कर रहा था, तो उन्होंने NXConstantString में उपसर्ग NX का उपयोग किया। जब वे ओपनस्टेप विनिर्देशन को सन के साथ लिख रहे थे (OPENSTEP ऑपरेटिंग सिस्टम के साथ भ्रमित नहीं होने के लिए) तो उन्होंने NS उपसर्ग का उपयोग किया, जैसा कि NSObject में किया गया था।


10

मूल रूप से एनएस , एन एक्स एस टीईपी से आता है , जो मूल ऑपरेटिंग सिस्टम है जो मैक ओएस एक्स बन गया जब ऐप्पल ने अधिग्रहण किया।

मैं कुछ और समझाना चाहता हूं और इसी कारण इसकी आवश्यकता है।

C ++ में नाम स्थान हैं और लगभग कुछ भी std में चला जाता है

यही कारण है कि आपके पास std :: string है।

Namespaces का उपयोग किया जाता है इसलिए आपके लिए एक गलती करना कठिन है और आप सिस्टम के साथ विरोध किए बिना अपनी खुद की क्लास स्ट्रिंग लिख सकते हैं।

ऑब्जेक्टिव-सी, सी का सुपरसेट है, लेकिन इसमें नाम स्थान शामिल नहीं है और इसी कारण से सभी सिस्टम वर्गों के ऊपर एनएस या कुछ अन्य अजीब उपसर्ग हैं।

यह बात समान है कि कैसे सभी DirectX वर्गों को D3D के साथ उपसर्गित किया जाता है और सभी OpenGL कक्षाएं ग्लू के साथ उपसर्गित की जाती हैं

इसका मतलब है कि आपको अपनी कक्षाओं के नाम के लिए NS का उपयोग नहीं करना चाहिए और जब आप NS , CA को कोर एनिमेशन या CG में देखते हैं कोर ग्राफिक्स में में तो आप समझते हैं कि यह एक सिस्टम फ्रेमवर्क के लिए एक कॉल है।

स्विफ्ट इस कन्वेंशन को बदल देती है, क्योंकि स्विफ्ट नेमस्पेसिंग का समर्थन करती है और यह अपने मूल प्रकारों जैसे स्ट्रिंग से लेकर एनएस समकक्षों तक का नक्शा तैयार करती है।


6

Bill Bumgarner aka @bbum, जिन्हें पता होना चाहिए , ने 2005 में CocoBuilder मेलिंग सूची में पोस्ट किया :

एनएस उपसर्ग के खेल में आने के बाद सूर्य ने चित्र में प्रवेश किया। NS उपसर्ग के बारे में सार्वजनिक APIs में NeXTSTEP 3.0 से NeXTSTEP 4.0 (OpenStep के रूप में भी जाना जाता है) के कदम के दौरान आया था। 4.0 से पहले, कुछ मुट्ठी भर प्रतीकों ने NX उपसर्ग का उपयोग किया था, लेकिन सिस्टम लाइब्रेरी द्वारा प्रदान की जाने वाली अधिकांश कक्षाएं सूची में शामिल नहीं थीं - सूची, हैशटेबल, व्यू, आदि ...

ऐसा लगता है कि हर कोई इस बात से सहमत है कि उपसर्ग NX (NeXT के लिए) 1993/1994 तक इस्तेमाल किया गया था, और Apple के डॉक्स :

आधिकारिक ओपनस्टेप एपीआई, 1994 के सितंबर में प्रकाशित किया गया था, फाउंडेशन और एप्लिकेशन किट के बीच एपीआई को विभाजित करने वाला पहला और "एनएस" उपसर्ग का उपयोग करने वाला पहला था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.