2009-01-23 17 views

उत्तर

377

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

+7

... या शायद नेक्स्ट/सन विरासत (सूर्य ओपनस्टेप कंसोर्टियम में प्रतिभागी था) –

+24

हां, ज़ाहिर है। यह सब कुछ अन्य उत्तरों में खूबसूरती से तैयार किया गया है, यही कारण है कि मैंने उस जानकारी को मेरी प्रतिलिपि बनाने में परेशान नहीं किया। क्षमा करें अगर वह किसी को अपमानित करता है - मुझे कोई फर्क नहीं पड़ता कि स्वीकृत उत्तर दूसरों में से किसी एक में बदल जाता है (यदि यह संभव है - कभी इसकी जांच नहीं की गई)। –

+1

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

726

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

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

यदि आप कोई एप्लिकेशन लिख रहे हैं, जैसे कि आपका कोड केवल आपके प्रतीकों का उपयोग करने की संभावना है, तो आपको इसके बारे में चिंता करने की ज़रूरत नहीं है। लेकिन अगर आप दूसरों के उपयोग के लिए एक ढांचा या पुस्तकालय लिख रहे हैं, तो आपको अपने प्रतीकों को एक अद्वितीय उपसर्ग के साथ उपसर्ग करना चाहिए। CocoaDev has a page जहां कोको समुदाय के कई डेवलपर्स ने अपने "चुने गए" उपसर्ग सूचीबद्ध किए हैं। आपको this SO discussion सहायक भी मिल सकता है।

+5

का लिंक कोकोडेव लिंक अब काम नहीं कर रहा है –

48

यह नेक्स्टस्टेप (= एनएस) विरासत है। नेक्स्ट कंप्यूटर कंपनी थी जो स्टीव जॉब्स ने 1 9 85 में ऐप्पल छोड़ने के बाद गठित किया था, और नेक्स्टस्टेप ओबेज-सी भाषा और रनटाइम के साथ एक साथ ऑपरेटिंग सिस्टम (यूनिक्स आधारित) था। इसके पुस्तकालयों और औजारों के साथ, नेक्स्टस्टेप को बाद में ओपनस्टेप नाम दिया गया था (जो एक एपीआई पर भी नाम था जिसे नेक्स्ट सूर्य के साथ विकसित किया गया था), जो बाद में कोको बन गया।

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

TheMerger OpenstepConfusion

+0

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

139

एन eXT एस टीईपी या एन eXTSTEP/एस संयुक्त जो आप पूछ रहे हैं उसके आधार पर।

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

मुझे वास्तव में इसका संदर्भ था लेकिन मुझे अभी यह नहीं मिल रहा है। अगर मैं इसे फिर से ढूंढूं तो मैं पोस्ट अपडेट करूंगा।

+4

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

+2

मुझे एक संदर्भ मिला: http://www.cocoabuilder.com/archive/cocoa/136618-what-does-ns-means.html –

9

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

20

Cocoa_(API) Wikipedia से:

(जोर जोड़ा)

कोको वर्गों परिवर्णी शब्द "एन एस" (खड़े या तो OpenStep की अगली सूर्य निर्माण के लिए, या के लिए के साथ शुरू ओपनस्टेप फ्रेमवर्क के लिए मूल स्वामित्व शब्द , नेक्स्टस्टेप): एनएसएसटींग, एनएसएआरएआरई, आदि

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

+0

विकिपीडिया यहां गलत है। फाउंडेशन किट [सबसे पहले एंटरप्राइज़ ऑब्जेक्ट्स फ्रेमवर्क में दिखाई दिया] (http://www.cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/HybridWorld.htmld/index.html), जो ओपनस्टेप की भविष्यवाणी करता है। संयोग से फाउंडेशन का नेक्स्ट संस्करण कोरफॉउंडेशन-जैसी सी एपीआई पर आधारित था, लेकिन मैक ओएस एक्स –

+6

तक सार्वजनिक इंटरफ़ेस के रूप में खुलासा नहीं किया गया था। आह डब्लूटीएच मैंने अभी विकिपीडिया भी संपादित किया है :-)। –

+0

@ user23743, मुझे नहीं लगता कि आप सही हैं।ईओएफ OPENSTEP ऑपरेटिंग सिस्टम की भविष्यवाणी करता है, लेकिन ओपनस्टेप एपीआई नहीं। ईओएफ दस्तावेज जो आपने सीधे लिंक किया है (संदर्भ ओपनस्टेप) [http://www.cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/IntroFoundation.htmld/], और वे दोनों को 1 99 4 में रिलीज़ किया गया था। – AriX

37

एप्पल के डेवलपर दस्तावेज़ से:

ऐतिहासिक नोट: यदि आप क्यों इतनी कक्षाएं आपके सामने आने वाली एक एन एस उपसर्ग के कई सोच रहे हैं, यह कोको और कोको टच के अतीत के इतिहास के कारण है। कोको ने जीवन शुरू किया क्योंकि संग्रहित ढांचे ने नेक्सट्सटेप ऑपरेटिंग सिस्टम के लिए ऐप्स बनाने के लिए उपयोग किया था। जब ऐप्पल ने 1 99 6 में नेक्स्ट को वापस खरीदा, तो अधिकांश क्लास नामों सहित ओएक्स एक्स में अधिकांश नेक्सट्सटेप को शामिल किया गया था। कोको टच कोको के आईओएस समकक्ष के रूप में पेश किया गया था; कुछ वर्ग कोको और कोको टच दोनों में उपलब्ध हैं, हालांकि प्रत्येक प्लेटफ़ॉर्म के लिए अद्वितीय संख्या में कक्षाएं भी उपलब्ध हैं। एनएस और यूआई (आईओएस पर यूजर इंटरफेस तत्वों के लिए) जैसे दो अक्षर उपसर्ग एप्पल द्वारा उपयोग के लिए आरक्षित हैं।

स्रोत: Programming with Objective-C

5

विधेयक Bumgarner aka @bbum, who should know, CocoaBuilder mailing list in 2005 पर पोस्ट:

सूर्य चित्र एन एस उपसर्ग के बाद एक सा खेलने में आया था में प्रवेश किया। नेक्सस्टेप 3.0 से नेक्स्टस्टेप 4.0 (जिसे ओपनस्टेप भी कहा जाता है) से चलने के दौरान एनएस उपसर्ग सार्वजनिक एपीआई में आया था। सूची, Hashtable, देखें, आदि ...

ऐसा नहीं है कि लगता है - 4.0 करने से पहले, प्रतीकों में से एक मुट्ठी NX उपसर्ग, लेकिन अधिकांश कक्षाओं द्वारा प्रदान की प्रणाली पुस्तकालयों सब पर पहले से जुड़ा हुआ नहीं कर रहे थे इस्तेमाल किया हर कोई इससे सहमत हैं कि (अगले के लिए) उपसर्ग NX 1993/1994 तक इस्तेमाल किया गया था, और Apple's docs say:

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

4

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

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

C++ में नामस्थान देखते हैं और लगभग कुछ भी एसटीडी

में चला जाता है यह वह जगह है तुम क्यों std है :: स्ट्रिंग।

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

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

यह बात सब कैसे DirectX कक्षाएं D3D साथ preffixed कर रहे हैं और कैसे सभी ओपन कक्षाओं जीएल साथ preffixed कर रहे हैं की एक ही है।

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

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

0

अगला चरण। यह एक धारणा है जब नेक्स्ट द्वारा लिखने के लिए अगलीस्टेप (बाद में ओएस एक्स) और सभी संबंधित ऐप्स इत्यादि लिखते हैं। वे उन तत्वों का प्रतिनिधित्व करते हैं जो मूल सी अंडरपिनिंग का हिस्सा नहीं हैं, उदाहरण के लिए , कोई नहीं है सी में 'स्ट्रिंग' तत्व, इसलिए उद्देश्य-सी में, यह एक अतिरिक्त नींव तत्व 'एनएसएसटींग' है।

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