2008-11-06 4 views
117

में आईफोन प्रोग्राम करना संभव है, मैं भाषा विविधता के लिए हूं, लेकिन उद्देश्य सी पागल है। तो मैं उत्सुक हूं: क्या कोको एपीआई आदि का उपयोग करते समय सी ++ के साथ आईफोन ऐप्स को कोड करना संभव है?क्या सी ++

उत्तर

53

संक्षिप्त उत्तर, हाँ, प्रकार। आप उद्देश्य-सी ++ का उपयोग कर सकते हैं, जिसे आप Apple Developer Connection.

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

+1

क्या आप उद्देश्य-सी सीखने के लिए अनुभवी सी ++ प्रोग्रामर के उद्देश्य से वेबसाइट या पुस्तक की अनुशंसा कर सकते हैं? मैं एक साथ कुछ टेस्ट ऐप्स मैश करने में कामयाब रहा, लेकिन मुझे थोड़ा पीछे सिंटैक्स मिल गया और मुझे यकीन है कि मैं ऐसी चीजें कर रहा हूं जो उद्देश्य-सी –

+5

के ज्ञान की कमी के कारण मेमोरी लीक इत्यादि का कारण बनती हैं, यह पृष्ठ अब मौजूद नहीं है । कोई अद्यतन लिंक? – Homer6

+3

@ लीहाहेस "फ्री सी ++ से ऑब्जेक्टिव-सी" नामक एक निःशुल्क पुस्तक। मान लें कि आप सी ++ जानते हैं और फिर आपको बताते हैं कि उद्देश्य-सी में चीजें अलग-अलग कैसे की जाती हैं। http://pierre.chachatelier.fr/programmation/fichiers/cpp-objc-en.pdf (यह मूल फ़्रेंच का अंग्रेज़ी अनुवाद है) – olafure

60

हालांकि उद्देश्य-सी वास्तव में शुरुआत में "पागल" प्रतीत होता है, मैं आपको इसके साथ रहने के लिए प्रोत्साहित करता हूं। एक बार जब आपके पास "ए-हा" पल हो, तो अचानक यह सब समझने लगे। मेरे लिए कोको फ्रेमवर्क, भाषा, और यह सब एक साथ कैसे फिट बैठता है, वास्तव में समझने के लिए केंद्रित उद्देश्य-सी एकाग्रता के लगभग 2 सप्ताह लग गए। लेकिन एक बार जब मैं वास्तव में "मिल गया", यह बहुत ही रोमांचक था।

यह क्लिच लगता है, लेकिन यह सच है। अंत तक बने रहना।

बेशक, यदि आप सी ++ पुस्तकालयों या मौजूदा सी ++ कोड में ला रहे हैं, तो आप उन मॉड्यूल का उपयोग उद्देश्य-सी/उद्देश्य-सी ++ के साथ कर सकते हैं।

28

सबसे पहले, कह रहा है कि उद्देश्य-सी "पागल" विनोदी है- मेरे पास Bjarne Stroustrup C++ पुस्तक है जो मेरी तरफ से बैठी है जो 1020 पृष्ठों पर घड़ियों में है। उद्देश्य-सी पर ऐप्पल का पीडीएफ 141 है।

यदि आप UIKit का उपयोग करना चाहते हैं तो यह आपके लिए सी ++ में कुछ भी करना बहुत मुश्किल होगा। एप्पल के यूआई के अनुरूप किसी भी गंभीर आईफोन ऐप को उद्देश्य-सी में लिखे जाने वाले यूआई भागों की आवश्यकता होगी। केवल अगर आप ओपनजीएल गेम लिख रहे हैं तो आप लगभग पूरी तरह से सी/सी ++ पर चिपक सकते हैं।

+25

जब से कम दस्तावेज एक अच्छी बात थी? "सी ++ प्रोग्रामिंग भाषा" बहुत अच्छी तरह से है और एसटीएल दस्तावेज भी है। – Timmmm

+2

@ टिमम्म: जब से के एंड आर ने अपनी पुस्तक के सामने के मामलों में उस बिंदु को बनाया था। उद्देश्य-सी सी ++ की तुलना में बहुत छोटी भाषा है, जिसमें कई लाभ (और इसके कुछ और हैं) हैं। निश्चित रूप से सब कुछ के व्यापार। लेकिन न्यूनतम दस्तावेज ओबीजे-सी को अनुभवी सी (या सी ++) लोगों के साथ तेजी से उठने के लिए बहुत आसान बनाता है। –

+59

क्षमा करें लेकिन ओबीजेसी पागल है। कार्यों को घोषित करने के एक पूरी तरह से अलग तरीके पर आग्रह, ब्रैकेट का उपयोग।यह किसी भी लाभ के लिए अलग नहीं है। वे हास्यास्पद वाक्यविन्यास के बिना एक ही प्रभावी भाषा का मसौदा तैयार कर सकते थे। उन्होंने नहीं चुना। इस प्रकार यह पागल है। – Rhubarb

40

मैं यूआई को एक साथ थप्पड़ मारने के लिए उद्देश्य-सी का उपयोग करता हूं।
लेकिन कोड की हार्ड गड़बड़ी अभी भी सी ++ में लिखी गई है।

उद्देश्य-सी यूआई इंटरफेस का मुख्य उद्देश्य और घटनाओं को संभालना है।
और यह उस उद्देश्य के लिए बहुत अच्छा काम करता है।

मुझे अभी भी कोड के बैकएंड के रूप में सी ++ पसंद है (लेकिन यह मुख्य रूप से क्योंकि मुझे सी ++ पसंद है) आप एप्लिकेशन के बैकएंड के लिए आसानी से उद्देश्य-सी का उपयोग कर सकते हैं।

+8

@Spanky: मैं कैसे ठीक से करता हूँ। आप * .m फ़ाइल में सामान्य सी लिख सकते हैं। आप * .mm फ़ाइलों (उद्देश्य-सी ++) में सामान्य सी ++ लिख सकते हैं। उद्देश्य-सी (++) फ़ाइलों के अंदर आप सामान्य '# शामिल करें ' जैसे सी/सी ++ फ़ाइलों की तरह। –

14

इसका कुछ अनुभव होने के बाद, आप वास्तव में अपने "कोर" कोड के लिए सी ++ कोड का उपयोग कर सकते हैं, लेकिन आपको आईफोन विशिष्ट के लिए उद्देश्य-सी का उपयोग करना होगा।

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

0

मैं वर्तमान में उद्देश्य-एक्स नामक एक उद्देश्य-सी ++ फ्रेमवर्क लिख रहा हूं, जो शुद्ध सी ++ iPHONE प्रोग्रामिंग संभव बनाता है। आप ऐसा कर सकते हैं:

#import "ObjectiveX.h" 

void GUIApplicationMain() {  
    GUIAlert Alert; 
    GUILabel Label; 
    GUIScreen MainScreen; 

    Alert.set_text(@"Just a lovely alert box!"); 
    Alert.set_title(@"Hello!"); 
    Alert.set_button(@"Okay"); 
    Alert.show(); 

    Label.set_text(@"Ciao!"); 
    Label.set_position(100, 200, 120, 40); 

    MainScreen.init(); 
    MainScreen.addGUIControl(Label.init());  
} 

और जीसीसी के उचित कमांडलाइन विकल्पों का उपयोग करके इसे संकलित करें। मैंने पहले से ही इस नरकॉर्ल्ड ऐप को संकलित किया है & यह एक आकर्षण की तरह w0rkX0rz। ;-) यह जल्द ही GoogleCode पर उपलब्ध होगा। उद्देश्य-एक्स के लिए खोजें या लगभग http://infotronix.orgfree.com/objectivex पर जाएं। एक सप्ताह बाद!

अपडेट किया गया (लेकिन जाहिरा तौर पर निष्क्रिय) यूआरएल: http://code.google.com/p/objectivex/

+4

पोस्टिंग के साथ प्रतीक्षा क्यों न करें जब तक वास्तव में उपलब्ध न हो? –

+0

एक जेएस मिला: उस लिंक पर जाकर डाउनलोडर वायरस चेतावनी .. – houbysoft

+8

दोनों लिंक 404 अब –

3

आप उद्देश्य सी का उपयोग करने के कोको एपीआई के साथ इंटरफेस करने के लिए है, इसलिए कोई विकल्प नहीं है। बेशक, आप दृश्यों के पीछे जितना चाहें उतना सी ++ का उपयोग कर सकते हैं (उद्देश्य सी ++ इसे आसान बनाता है)।

यह वास्तव में एक पागल भाषा है, लेकिन यह भी है ... इसका उपयोग करने के लिए एक बार इसका उपयोग करने के लिए मजेदार प्रकार। :-)

3

मुझे सी ++ के बारे में निश्चित नहीं है, लेकिन आप MonoTouch नामक उत्पाद का उपयोग करके निश्चित रूप से सी # में आईफोन अनुप्रयोगों को कोड कर सकते हैं। How to decide between MonoTouch and Objective-C?

2

मैं एक गणना प्रधान एंड्रॉयड iOS6 के लिए जावा में लिखा एप्लिकेशन पोर्टिंग की प्रक्रिया में हूँ:

आप MonoTouch बनाम Obj सी पर विस्तृत चर्चा के लिए इस पोस्ट देख सकते हैं। मैं जावा से सी ++ में गैर-यूआई भागों को पोर्ट करके, ओबीजे-सी में (न्यूनतम) यूआई भागों को लिखकर और मानक सी/सी ++ तकनीक का उपयोग करके पूर्व (छोटे) सी इंटरफ़ेस में पूर्व को लपेटकर ऐसा कर रहा हूं, ताकि वह इसे ओबीजे-सी से एक्सेस किया जा सकता है, जो सी

के सभी सुपरसैट के बाद किया जा सकता है यह अब तक प्रभावी रहा है, और मुझे किसी भी गठिया का सामना नहीं हुआ है। यह एक वैध दृष्टिकोण प्रतीत होता है, क्योंकि एक्सकोड आपको सी ++ कक्षाओं के साथ-साथ ओबीजे-सी कक्षाएं बनाने देता है, और कुछ आधिकारिक नमूना कोड इस तरह से काम करता है। ऐसा करने के लिए मुझे किसी भी आधिकारिक रूप से समर्थित इंटरफेस के बाहर जाना नहीं था।

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

0

यह थोड़ा ऑफटॉप हो सकता है, लेकिन वैसे भी। आप आईओएस उपकरणों पर सी ++ प्रोग्राम कर सकते हैं। सीपीपीकोड आईओएस ऐप देखें - http://cppcode.info। मेरा मानना ​​है कि यह बाद में सी और सी ++ और उद्देश्य-सी सीखने में मदद करता है।

1

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