2009-05-12 10 views
8

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

सी का उद्देश्य सी बस एक वाक्य रचना सुपरसेट है या यह वास्तव में सी की तरह है के रूप में, यह जीसीसी आदि के साथ संकलित किया जा सकता ..?

मैं रूबी में अपने अधिकांश प्रोग्रामिंग करता हूं। उद्देश्य सी सी से ज्यादा क्षमा कर रहा है। आप रूबी के लिए मूल एक्सटेंशन लिख सकते हैं। क्या आप उद्देश्य सी में रुबी के लिए मूल एक्सटेंशन लिख सकते हैं?

मैं मैक/आईफोन के मालिक और एक्सकोड रखने के बाहर उद्देश्य सी के साथ कैसे शुरू कर सकता हूं?

+3

क्यों यह गहरे लाल रंग का टैग है? – MickaelFM

+0

क्या आप उद्देश्य-सी में लिखे गए रूबी एक्सटेंशन की अपनी योजनाओं में सफल हुए हैं? मैंने उद्देश्य-सी में भी एक रूबी विस्तार विकसित किया। अब मुझे नए उद्देश्य-सी अपवादों (@ फेंक/@ पकड़ ...) के साथ समस्या है। जब मैं उन्हें अपवाद की पहली घटना पर अपने रूबी ऐप कोर डंप का उपयोग करता हूं। मैं gnu-runtime का उपयोग कर रहा हूं और कोर-डंपिंग कोड इसके अंदर है: objc_exception_throw (...) { ... /* कुछ प्रकार की अनचाहे त्रुटि। */ निरस्त(); } –

उत्तर

6

Wikipedia कहते

आज यह मुख्य रूप से एप्पल के मैक ओएस एक्स और iPhone OS पर प्रयोग किया जाता है, दो वातावरण के आधार पर है, हालांकि पर खरी नहीं उतरती , OpenStep मानक, और यह प्राथमिक भाषा है ऐप्पल के कोको एपीआई के लिए का उपयोग किया गया था, हालांकि यह मूल रूप से नेक्स्ट के नेक्स्टस्टेप ओएस पर मुख्य भाषा के रूप में उपयोग किया जाता था। जेनेरिक ऑब्जेक्टिव-सी प्रोग्राम जो इन पुस्तकालयों की उपयोग भी जीसीसी, जो एक ऑब्जेक्टिव-सी संकलक शामिल द्वारा समर्थित किसी भी प्रणाली के लिए संकलित किया जा सकता है नहीं बनाते हैं।

ऑब्जेक्टिव-सी आज अक्सर इस तरह के कोको या GNUstep के रूप में मानक वस्तुओं (अक्सर एक "किट" या "रूपरेखा" के रूप में जाना जाता है), की एक निश्चित पुस्तकालय के साथ संगठनों ने मिलकर किया जाता है।

यदि आप मुख्य रूप से विंडोज चल रहे हैं और GNUStep चल रहे हैं तो आपको लिनक्स वीएम मिलना चाहिए।

1

के लिए नीचे दिए गए लिंक वहाँ भाषा ऑब्जेक्टिव-सी के बीच एक अंतर है की जांच करें, और ऐप्पल ने इसके शीर्ष पर बनाए गए ढांचे को बनाया है। उन ढांचे में ऑब्जेक्ट्स का एक समूह होता है जिसका आप अपने कोड में उपयोग कर सकते हैं और यदि आप मैक या आईफोन को लक्षित कर रहे हैं तो विशेष रूप से सहायक होते हैं। जीएनयूएसटीपी में इसके कुछ हिस्सों के लिए कुछ समान वस्तुएं हैं, लेकिन यह कोको/आदि पुस्तकालय के लिए एक पूर्ण प्रतिस्थापन नहीं है और विशेष रूप से आईफोन से संबंधित कुछ भी शामिल नहीं है।

जीएनयूएसटीपी और उद्देश्य-सी भाषा (जीसीसी के माध्यम से) कई प्लेटफ़ॉर्म के लिए उपलब्ध हैं, और आप अपने स्वयं के प्रोग्राम लिख सकते हैं जो उद्देश्य-सी ऑब्जेक्ट्स का उपयोग करते हैं और उद्देश्य-सी से किसी भी सी एपीआई के साथ बातचीत करते हैं।

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

हालांकि शुरू करने और भाषा के साथ खेलने के लिए, जीएनयूएसटीपी और जीसीसी जाने का एक अच्छा तरीका होगा।

+0

मैं यकीन है कि ऑब्जेक्टिव-सी सी के एक सख्त superset, C++ जो सी –

+0

से कुछ (लेकिन कई नहीं) स्वच्छ टूट जाता है ऑब्जेक्टिव-सी सी की एक पूरी सुपरसेट, नहीं एक लगभग सुपरसेट है। –

+0

ठीक है, अत: क्षमा करें (मैं सी ++ Obj सी से से अधिक परिचित हूँ)। मैं एक व्यावहारिक नजरिए से पाठ, किसी भी मामले में सही कर देंगे दोनों सी –

3

सेब उद्देश्य सी परिवर्तन वापस जीसीसी (नहीं है कि वे जीपीएल जा रहा है ज्यादा विकल्प नहीं था,) के लिए योगदान दिया। तो जहां भी आप जीसीसी स्थापित कर सकते हैं, आप एक उद्देश्य-सी संकलक स्थापित कर सकते हैं।

इसके अलावा, Gnustep पर्यावरण आपको मूल ओपनस्टेप/नेक्स्टस्टेप पर्यावरण का स्वाद प्रदान कर सकता है।

0

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

+1

का सुपरसेट उपयोगिता वर्गों में से क्या पर्याप्त पुस्तकालय कर रहे हैं? उद्देश्य-सी व्यावहारिक रूप से कुछ भी नहीं आता है। – Chuck

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