2011-07-01 13 views
5

मैं ऐप्पल के उपकरण और जीयूआई का उपयोग करने के लिए उद्देश्य-सी और कोको सीखने पर विचार कर रहा हूं।क्या आप कोको (ओब्जे-सी) परियोजना में सी ++ पुस्तकालयों का उपयोग कर सकते हैं?

हालांकि, मैं कुछ ग्राफिक्स प्रोग्रामिंग भी करना चाहता हूं; ओपनफ्रेमवर्क और सिंडर दो पुस्तकालय हैं जो मेरी आंख को पकड़ते हैं, लेकिन फिर हम सी ++ भूमि में हैं।

मैं जावा/स्विंग/प्रोसेसिंग पृष्ठभूमि से आया हूं ... सी परिवार के बारे में बहुत कुछ नहीं पता। आप मूल कोको से सी और सी ++ पुस्तकालयों जैसे सिंडर और ऑफ को कितनी प्रभावी ढंग से कॉल कर सकते हैं?

और, बोनस अंक: क्या इस काम को आईफोन या आईपैड पर एक समाधान होगा? , हालांकि एप्पल "पसंद" डेवलपर्स ओपन उपयोग करने के लिए:

उत्तर

12

संक्षेप में, सी ++ ओएस एक्स और आईओएस प्रोग्राम के लिए ठीक है, और उद्देश्य-सी के साथ काफी अच्छी तरह से खेलता है।

और अधिक विस्तार में:

हालांकि, मैं भी कुछ ग्राफिक्स प्रोग्रामिंग करना चाहते हैं; ओपनफ्रेमवर्क और सिंडर दो पुस्तकालय हैं जो मेरी आंख को पकड़ते हैं, लेकिन फिर हम सी ++ भूमि में हैं।

मैं उन पुस्तकालयों के लिए सीधे बात नहीं करूंगा।

अधिक सामान्य शर्तों में अपने प्रश्न का उत्तर देने के लिए: सी ++ आपके ऐप में ठीक है, क्योंकि सी, सी ++, ओबीजेसी, और ओबीजेसी ++ आईओएस ऐप्स के लिए प्रथम श्रेणी विकास भाषाएं हैं।

मैं जावा/स्विंग/प्रोसेसिंग पृष्ठभूमि से आया हूं ... सी परिवार के बारे में बहुत कुछ नहीं पता। आप मूल कोको से सी और सी ++ पुस्तकालयों जैसे सिंडर और ऑफ को कितनी प्रभावी ढंग से कॉल कर सकते हैं?

उद्देश्य-सी ++ आपको उसी अनुवाद में सी, सी ++, और उद्देश्य-सी का उपयोग करने की अनुमति देता है। जहां आवश्यक हो, सी ++, सी, या ओबीजेसी का उपयोग/गठबंधन करने के लिए स्वतंत्र महसूस करें। संकलन के समय में वृद्धि होगी, और कुछ प्रतिबंध हैं * यदि आप यह मार्ग लेते हैं। अन्यथा, समर्थन बहुत अच्छा है। यहां तक ​​कि ऐप्पल अपने ऐप्स/libs में सी ++ की अच्छी मात्रा का उपयोग करता है।

और, बोनस अंक: क्या इस काम को आईफोन या आईपैड पर एक समाधान होगा?

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

अद्यतन: इस बिंदु पर (8 नवंबर, 2011) क्लैंग लगभग सभी सी ++ 2003 कोड को मैं इसे फेंक सकता हूं। कोड की गति और आकार जीसीसी + एलएलवीएम की तुलना में भिन्न होता है। मैं इस बिंदु पर या तो छोड़ना नहीं चाहता, लेकिन दोनों कंपाइलर सी ++ 2003 के साथ मेरे लिए अच्छा काम करते हैं, और ऐप्पल का जीसीसी सी ++ 11 का समर्थन नहीं करेगा, इसलिए अगर आप सी ++ 11 फीचर्स चाहते हैं तो क्लैंग का परीक्षण शुरू करने का अच्छा समय है निकट भविष्य में।

  • सी ++ रूप में लंबे समय के रूप में अपनी टीम जानता है कि यह कैसे उपयोग करने के लिए आदर्श (IMO) iOS पर सामान्य प्रदर्शन महत्वपूर्ण विकास के लिए है।
  • मिक्सिंग सी, ओबीजेसी और सी ++ बहुत शक्तिशाली हैं यदि आप सही कारणों से प्रत्येक भाषा की सही विशेषताओं का उपयोग करते हैं, और अच्छी संगतता मौजूद है। यह ओएस एक्स से पिछले वर्षों तक पहुंचता है (हालांकि संकलक उस समय जीसीसी था)।

* प्रतिबंध: ये उचित प्रतिबंध हैं - आपको आवश्यक सभी सुविधाएं मौजूद हैं, लेकिन ऐसी कुछ चीजें हैं जो लोग उम्मीद कर सकते हैं जो संभव नहीं हैं। सबसे आम संभावना है कि विभिन्न ऑब्जेक्ट मॉडल के प्रकार प्राप्त करने में असमर्थता हो। यानी, आप उचित रूप से एक ओबीजेसी प्रकार से सी ++ प्रकार नहीं बना सकते हैं, लेकिन आप किसी ऑब्जेक्ट प्रकार में कई प्रकार के आइवरों को स्वतंत्र रूप से घोषित कर सकते हैं।

3

अभी तक आप CocoaCinderGL wrapper के माध्यम से एक ठेठ कोको परियोजना के भीतर से सिंडर का उपयोग कर सकते हैं। यह आपको अपने एप्लिकेशन में कई एनएससी कस्टम व्यू जोड़ने देता है, प्रत्येक व्यक्ति सिंडर का एक स्वतंत्र "उदाहरण" चलाता है। और स्पष्ट रूप से आप उन NSSuttons, NSSliders को जोड़ सकते हैं जैसे आप उन उदाहरणों को पसंद करते हैं। उम्मीद है की वो मदद करदे!

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

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