2012-06-06 10 views
23

मैं एक सी और सी ++ प्रोग्रामर उद्देश्य-सी के साथ शुरू करने की कोशिश कर रहा हूं। हालांकि, मैं भाषा और मानक पुस्तकालय के मानकों के दस्तावेज की स्पष्ट कुल अनुपस्थिति से वास्तव में परेशान हूं। मैं समझ सकता हूं कि कोई आईएसओ मानक नहीं है, लेकिन क्या कोई संदर्भ दस्तावेज़ बिल्कुल नहीं है? और यह कैसे है कि कोई भी इस स्थिति के बारे में बहुत चिंतित नहीं है? (मान लीजिए, इस तरह की चीज़ के लिए Google के लिए मुश्किल है, क्योंकि "संदर्भ", "दस्तावेज़" और "मानक" सभी अधिभारित शब्द हैं। इसलिए यह संभव है कि मैंने कुछ महत्वपूर्ण याद किया है।)उद्देश्य-सी मानक दस्तावेज़

यह प्रश्न मिलता है एक ही बात पूछने के करीब: Where can i find a document explaining how Objective-C is implemented और प्रदान किया गया एकमात्र उत्तर था "ऐप्पल द्वारा प्रकाशित इस स्रोत कोड को पढ़ें जो कुछ साल पहले उनके कार्यान्वयन के करीब था, शायद"।

यह पृष्ठ: http://clang.llvm.org/docs/ObjectiveCLiterals.html ऑब्जेक्टिव-सी के लिए एक औपचारिक व्याकरण का एक टुकड़ा शामिल है, लेकिन विडंबना यह है कि यह है कि बजना बस बंद हो गया था और अपने दम पर और कहा कि किसी और का समर्थन करता है जोड़ा एक विशेषता का वर्णन के संदर्भ में है। यहां एक और व्याकरण है: http://www.omnigroup.com/mailman/archive/macosx-dev/2001-March/022979.html लेकिन यह 10 साल से अधिक पुराना है।

प्रश्न को कम से कम न्यूनतम तक सीमित करने के लिए: मैं जानना चाहता हूं कि "ऑब्जेक्ट" द्वारा कौन सी विधियों की गारंटी है, और प्रत्येक विधि का व्यवहार क्या है। अन्य भाषाओं के लिए, इस प्रकार की जानकारी आम तौर पर कुछ इस तरह से प्रदान की जाती है: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html

+1

+1, अच्छा प्रश्न और अच्छी तरह से शोध किया गया। [सही लोगों] [http://stackoverflow.com/tags/objective-c/topusers) के लिए बेहतर दृश्यता सुनिश्चित करने के लिए अगली बार उचित टैग का उपयोग करने का ख्याल रखें। टैगिंग से पहले टैग विकी को भी पढ़ें, और सुनिश्चित करें कि उनका अर्थ यह है कि आप उनका इरादा रखते हैं। –

+0

वास्तव में अच्छा सवाल है। एनएसओब्जेक्ट ([आईओएस] (https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html)/[ओएस एक्स] (https: // डेवलपर .apple.com/लाइब्रेरी/मैक/# दस्तावेज़ीकरण/कोको/संदर्भ/फाउंडेशन/कक्षाएं/nsobject_Class/संदर्भ/संदर्भ.html)) एक रूट वर्ग बीटीडब्ल्यू है। –

उत्तर

5

मुझे लगता है कि मैं आपके सवाल का सही ढंग से समझ, तो मैं तदनुसार जवाब देंगे ...

मैं अत्यधिक Apple Developer Library में दस्तावेजों सलाह देते हैं। यहां पर कुछ बुनियादी गाइड आप आरंभ करने के लिए कर रहे हैं:

Concepts in Objective-C Programming

Programming with Objective-C

Cocoa Fundamentals Guide

iOS App Programming

दस्तावेजों वहाँ ऑब्जेक्टिव-सी और कोको सर्वोत्तम प्रथाओं के लिए निश्चित स्रोत हैं और कोडिंग मानकों। कई विषयों पर कई और दस्तावेज हैं, इसलिए उस वेबसाइट को जांचना सुनिश्चित करें।

आपने यह भी पूछा कि ऑब्जेक्ट्स के लिए कौन सी विधियां उपलब्ध हैं। यह जानने के लिए, आप कक्षा संदर्भों को देख सकते हैं।

उदाहरण के लिए:

NSObject Class Reference

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

आशा है कि इससे मदद मिलेगी।

14

दुर्भाग्यवश ओबीजेसी के लिए कोई मानक नहीं है क्योंकि सी ++ या सी के लिए ऐप्पल मुख्य उपयोगकर्ता और भाषा के पीछे चालक है, उनके कंपाइलर कार्यान्वयन (क्लैंग की ओबीजेसी बिट्स) वास्तव में मानक है। उनका पुराना दस्तावेज़ (broken link) "The Objective-C Programming Language" लगभग एक गद्य संस्करण के करीब था, और यह उन अन्य भाषाओं के मानकों की सटीकता के करीब कहीं नहीं था (और यह संकलक के पीछे पीछे हट जाता है)।

यह अभी भी कहीं भी वेब पर तैर रहा है, लेकिन यह अब तक अद्यतित नहीं है। "Programming with Objective-C" उनका इच्छित प्रतिस्थापन प्रतीत होता है (लेकिन फिर, यह मानक मानक की तरह नहीं है)।

टिम के हटाए गए उत्तर के तहत your comment (केवल 10k लिंक) के संबंध में, कोको रूट क्लास NSObject है, और इसका इंटरफ़ेस is documented है, लेकिन इसका स्रोत उपलब्ध नहीं है। ध्यान दें कि NSObject protocol भी कोको ऑब्जेक्ट की कार्यक्षमता का एक अत्यंत महत्वपूर्ण हिस्सा है। ऐप्पल का रनटाइम open-source है, * और Object नामक रूट क्लास है, मैं प्रदर्शन के उद्देश्यों के लिए मानता हूं। यह कोको प्रोग्रामिंग में उपयोग नहीं किया जाता है।

आप पहले से ही इस सब के बारे में जानते हैं। आपके प्रश्न का सीधा जवाब है, "कोई नहीं है"। अधिकांश वाक्यविन्यास सी के समान है, हालांकि, जैसा कि बीबीएम इंगित करता है: Authoritative description of ObjectiveC string literals? (हाँ, मैंने इस उत्तर की शुरुआत में मेरी टिप्पणी को कॉपी किया है)


* ध्यान दें आप अपने प्रश्न में क्या कहना है कि इसके विपरीत, इस वास्तविक अप-टू-डेट, क्रम है।

1

मिले वाक्य रचना आदि सहित ऑब्जेक्टिव-सी की भाषा परिभाषा, कम से कम कुछ (लिंक देखें)

मैं अभी जहां 3 साल पहले किया गया है कर रहा हूँ (अपने प्रश्न में तारीख के अनुसार) : मैं उद्देश्य-सी में शामिल होना शुरू कर रहा हूं, और मुझे यह भी अजीब लगता है कि कोई संदर्भ पुस्तिका नहीं है, जहां मैं उदाहरण के लिए सिंटैक्स, कीवर्ड इत्यादि के सटीक अर्थ और परिभाषा को देख सकता हूं।

अब मैंने पाया है कि कम से कम इसमें से कुछ दस्तावेज में पाया जा सकता है जो कोको से संबंधित है (Cocoa Core Competencies)। उदाहरण के लिए लिंक कीवर्ड "@property" की परिभाषा पर कूदता है।

मेरे पीओवी में यह केवल कोको के लिए विशेष रूप से प्रासंगिक नहीं है बल्कि आम तौर पर सी के उद्देश्य-सी भाषा विस्तार को परिभाषित कर रहा है। मैं "कोको" के दस्तावेजों में इसकी खोज क्यों नहीं करता।

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