उद्देश्य-सी के नामस्थान क्यों नहीं हैं? यह एक साधारण सुविधा की तरह लगता है जो कुछ वर्ग नामों को और अधिक पठनीय (AVMutableVideoCompositionLayerInstruction
किसी को भी बना देगा?) और क्लास नामों पर मूर्ख पत्र उपसर्ग को कुल्हाड़ी देगा। क्या यह मुख्य रूप से पीछे की संगतता की वजह से है? क्या ऐसा लगता है कि नामस्थानों को लागू करना मुश्किल है?उद्देश्य-सी के नामस्थान क्यों नहीं हैं?
उत्तर
मुझे जवाब नहीं पता लेकिन मुझे संदेह है कि "यह दिखने से कठिन है" शायद यह है। आपको कंपाइलर और लिंकर में ऐसे तरीके से समर्थन देना होगा जो मौजूदा सॉफ़्टवेयर को तोड़ नहीं देता है। और यह स्पष्ट रूप से संभव है (सी ++ पहले से ही यह कर चुका है) संभवतः उपकरण श्रृंखला टीम की प्लेट पर उच्च प्राथमिकताएं थीं। जैसे हाल ही में हमारे पास कचरा संग्रह, जीसीडी, ब्लॉक और उद्देश्य-सी 2.0 दिखाई दिया है, इसलिए हम यह नहीं कह सकते कि वे कुछ भी नहीं कर रहे हैं।
नेमस्पेस समर्थन एक बात है जिसे मैं उद्देश्य-सी के साथ पेश करने के लिए बहुत प्यार करता हूं।
मैंने इसके बारे में भी सोचा, मुझे लगता है कि सबसे बड़ी बाधा सभी सी सामान हो सकती है ... –
मुझे नहीं पता कि क्या आप जानना चाहते हैं कि कुछ आधिकारिक निर्णय है या नहीं। लेकिन कई अन्य फीचर की तरह नामस्थान पसंद है, भाषा योगदानकर्ता द्वारा पसंद किया गया विकल्प। PHP ने हाल ही में नामस्थान पेश किया है, और उदाहरण के लिए जावा उपयोग पैकेज जो नामस्थान या पायथन उपयोग मॉड्यूल की तरह कार्य करता है।
मुझे लगता है कि नामस्थान कार्यान्वयन में एक ओवरहेड है, मुख्य रूप से क्योंकि उद्देश्य-सी को द्विपक्षीय रूप से टाइप किया गया है, इसलिए रनटाइम पर आपको नामस्थान को हल करने के लिए कुछ जांच करना है, डिफ़ॉल्ट व्यवहार को हल करने के लिए, आदि .. और मुझे लगता है कि क्योंकि उद्देश्य-सी का भी एम्बेडेड वातावरण (एकेए आईफोन) में उपयोग किया जाता है, गति बहुत महत्वपूर्ण है।
आप सब कुछ मैं एक बड़ी IMHO में कहा है रैप करने के लिए है;
अद्यतन डी:
मैं कारण समझा बजना डेवलपर वेबसाइट पर इस बहुत ही दिलचस्प चर्चा http://clang-developers.42468.n3.nabble.com/Adding-namespaces-to-Objective-C-td1870848.html#a1872744 पाया क्यों निश्चित रूप से है Obj-C में नामस्थान लागू करने के लिए गैर-तुच्छ।
कक्षा के नामों के लिए नेमस्पेस समर्थन प्रदान करने के लिए, मुझे लगता है कि यह पर्याप्त होगा। इन्हें किसी तरह से उलझाया जाएगा ताकि, रन टाइम पर, बहुत कम या कोई ऊपरी भाग नहीं होगा। – JeremyP
- 1. नामस्थान स्कोपिंग उपसर्ग के बिना नामस्थान के भीतर कुछ फ़ंक्शन क्यों पहुंच योग्य हैं?
- 2. एकाधिक नामस्थान क्यों?
- 3. नामस्थान के नाम से नामस्थान
- 4. नामस्थान
- 5. के लिए DomDocument नामस्थान क्या हैं?
- 6. ग्रहण PHP नामस्थान घोषणाओं को क्यों पहचान नहीं रहा है?
- 7. नामस्थान निर्भरता की आवश्यकता नहीं
- 8. हमें लक्ष्य नामस्थान की आवश्यकता क्यों है?
- 9. नामस्थान
- 10. (नाम) कई नामस्थान होने के क्या परिणाम हैं?
- 11. इंटरफेस क्यों नहीं हैं [Serializable]?
- 12. नामस्थान
- 13. नामस्थान
- 14. नामस्थान
- 15. नामस्थान
- 16. नामित नामस्थान क्यों उपयोग किए जाते हैं और उनके लाभ क्या हैं?
- 17. नामस्थान सी ++
- 18. नामस्थान
- 19. सी ++ वैश्विक नामस्थान किसी अन्य नामस्थान के भीतर से
- 20. विस्तार के तरीके - नामस्थान
- 21. नाम या नामस्थान नाम नामस्थान
- 22. वसंत-एमवीसी: "संदर्भ" और "नामस्थान" क्या हैं?
- 23. आप अपने नामस्थान कैसे व्यवस्थित करते हैं?
- 24. प्रतीक नहीं मिला, फ्लैट नामस्थान ओब्जेसी ++
- 25. "उपयोग नामस्थान: autoclean" के साथ "अधिभार का उपयोग" क्यों नहीं करता है?
- 26. आप अपने एक्सटेंशन विधियों के नामस्थान कैसे प्रबंधित करते हैं?
- 27. टाइप या नामस्थान नाम 'गतिशील' नहीं मिला
- 28. नामस्थान के अंदर
- 29. स्ट्रिंग के बजाय फ़ाइल.न्यू प्रतीकों के तर्क क्यों नहीं हैं?
- 30. नामस्थान सिस्टम नहीं ढूंढ सकता है। Web.UI.DataVisualization.Charting
इसके लायक होने के लिए, मैं NXTrEP :: NSArray पर ऐरे पसंद नहीं करूंगा। मूर्खतापूर्ण है क्योंकि आपको उपसर्ग की बात मिल सकती है, मुझे लगता है कि नामों में कोई प्रतीक वर्ण नहीं है, उद्देश्य-सी वाक्यविन्यास की वाक्य-जैसी संरचना में अच्छी तरह से फिट बैठता है। –
@wm: लेकिन आपने इसे "नेक्स्टस्टेप सरणी" के रूप में पढ़ा है, जैसा कि आप 'ऑब्जेक्ट एट इंडेक्स' नहीं पढ़ते हैं, वैसे ही 'ऑब्जेक्ट एट इंडेक्स: i' "इंडेक्स पर ऑब्जेक्ट I" के रूप में "इंडेक्स कॉलन i पर ऑब्जेक्ट नहीं" । बिंदु जहां तक एनएस-वर्गों का संबंध है, वैसे भी मुद्दा है। आप सभी मौजूदा कोको सॉफ्टवेयर को तोड़ने के बिना उन्हें एक नए नामस्थान में स्थानांतरित नहीं कर सकते हैं। – JeremyP
इसके अलावा, आप इसे प्रत्येक बार 'नेक्स्टस्टेप :: ऐरे' के रूप में संदर्भित नहीं करेंगे, आपके पास 'नेक्स्टस्टेप का उपयोग करके' होगा और फिर इसे 'ऐरे' के रूप में संदर्भित करें, * जब तक * अस्पष्टता न हो और फिर आप ' डी इसे पूरी तरह से हल करें। यह वास्तव में कोड क्लीनर और अधिक पठनीय बना देगा। – devios1