Ich bin alles für Sprachvielfalt, aber Ziel C ist verrückt. Ich bin also neugierig: Ist es möglich, iPhone-Apps mit C ++ zu codieren, während die Cocoa-API usw. verwendet wird?
Ich bin alles für Sprachvielfalt, aber Ziel C ist verrückt. Ich bin also neugierig: Ist es möglich, iPhone-Apps mit C ++ zu codieren, während die Cocoa-API usw. verwendet wird?
Antworten:
Kurze Antwort, ja, irgendwie. Sie können Objective-C ++ verwenden, über das Sie unter Apple Developer Connection lesen können .
Wenn Sie C ++ bereits kennen, wäre das Erlernen von Objective-C ziemlich einfach, wenn Sie sich dazu entschließen würden, es auszuprobieren. Weitere Informationen zu diesem Thema erhalten Sie auch beim ADC.
Obwohl Objective-C anfangs tatsächlich "verrückt" zu sein scheint, ermutige ich Sie, daran festzuhalten. Sobald Sie einen "a-ha" Moment haben, macht plötzlich alles Sinn. Für mich dauerte es ungefähr 2 Wochen konzentrierter Objective-C-Konzentration, um die Kakao-Frameworks, die Sprache und wie alles zusammenpasst, wirklich zu verstehen. Aber als ich es wirklich "verstanden" habe, war es sehr, sehr aufregend.
Es klingt klischeehaft, aber es ist wahr. Durchhalten.
Wenn Sie C ++ - Bibliotheken oder vorhandenen C ++ - Code einbringen, können Sie diese Module natürlich mit Objective-C / Objective-C ++ verwenden.
Ich benutze Objective-C, um die Benutzeroberfläche zusammenzuschlagen.
Aber der harte Mut des Codes ist immer noch in C ++ geschrieben.
Dies ist der Hauptzweck von Objective-C, der Benutzeroberfläche und der Behandlung der Ereignisse.
Und es funktioniert hervorragend für diesen Zweck.
Ich mag immer noch C ++ als Backend für den Code (aber das liegt hauptsächlich daran, dass ich C ++ mag), dass Sie Objective-C auch ganz einfach für das Backend der Anwendung verwenden können.
#include <XXX>
C / C ++ - Dateien verwenden.
Zunächst einmal ist es humorvoll zu sagen, dass Objective-C "verrückt" ist. Ich habe das Bjarne Stroustrup C ++ - Buch an meiner Seite, das 1020 Seiten umfasst. Apples PDF zu Objective-C ist 141.
Wenn Sie UIKit verwenden möchten, wird es für Sie sehr, sehr schwierig sein, etwas in C ++ zu tun. Für jede seriöse iPhone-App, die der Benutzeroberfläche von Apple entspricht, müssen die Teile der Benutzeroberfläche in Objective-C geschrieben sein. Nur wenn Sie ein OpenGL-Spiel schreiben, können Sie sich fast ausschließlich an C / C ++ halten.
Mit etwas Erfahrung können Sie zwar C ++ - Code für Ihren "Kern" -Code verwenden, aber Sie müssen Objective-C für alles verwenden, was für das iPhone spezifisch ist.
Versuchen Sie nicht, Objective-C zu zwingen, sich wie C ++ zu verhalten. Auf den ersten Blick scheint Ihnen dies möglich zu sein, aber der resultierende Code funktioniert mit Cocoa wirklich nicht gut, und Sie werden sehr verwirrt darüber sein, was los ist. Nehmen Sie sich Zeit, um ohne C ++ richtig zu lernen, wie man GUIs und iPhone-Anwendungen erstellt, und verknüpfen Sie dann Ihre C ++ - Basis.
Sie müssen Objective C verwenden, um eine Schnittstelle mit der Cocoa-API herzustellen, sodass Sie keine andere Wahl haben. Natürlich können Sie hinter den Kulissen so viel C ++ verwenden, wie Sie möchten (Objective C ++ macht dies einfach).
Es ist in der Tat eine verrückte Sprache, aber es macht auch ... Spaß, wenn man sich ein bisschen daran gewöhnt hat. :-)
Ich bin mir bei C ++ nicht sicher, aber Sie können iPhone-Anwendungen definitiv in C # mit einem Produkt namens MonoTouch codieren .
In diesem Beitrag finden Sie ausführliche Informationen zu MonoTouch gegen Obj-C: Wie kann man sich zwischen MonoTouch und Objective-C entscheiden?
Ich bin dabei, eine rechenintensive Android-App, die in Java geschrieben wurde, auf iOS6 zu portieren. Dazu portiere ich die Nicht-UI-Teile von Java nach C ++, schreibe die (minimalen) UI-Teile in Obj-C und verpacke die ersteren mit der Standard-C / C ++ - Technik in eine (kleine) C-Schnittstelle es kann von Obj-C aus zugegriffen werden, das immerhin eine Obermenge von C ist.
Dies war bisher effektiv und ich habe keine Fallstricke festgestellt. Dies scheint ein legitimer Ansatz zu sein, da Sie mit Xcode sowohl C ++ - als auch Obj-C-Klassen erstellen können und ein Teil des offiziellen Beispielcodes dies auf diese Weise tut. Ich musste keine offiziell unterstützten Schnittstellen verlassen, um dies zu tun.
Es scheint nicht viel zu gewinnen, wenn ich meinen verbleibenden UI-Code in C ++ schreibe, selbst wenn dies angesichts der Hilfe des Interface Builders in Xcode möglich wäre. Meine Antwort wäre also, dass Sie C ++ für verwenden können fast Ihre gesamte App oder so viel davon, wie Sie für angemessen / bequem halten.
Ja, aber zu denken, dass Sie jede Art von Programm in einer einzigen Sprache programmieren können, ist eine fehlerhafte Idee, es sei denn, Sie schreiben sehr einfache Programme. Ziel C ist für Cocoa wie C # für .NET. Verwenden Sie das richtige Tool für den richtigen Job. Der Versuch, C ++ durch Schreiben von Bridging-Code mit Cocoa interagieren zu lassen und zu versuchen, C ++ - Code gemäß den Cocoa-Anforderungen zu verhalten, ist keine gute Idee, und C ++ ist auch nicht zu erwarten Leistung von Ziel C ist. Sie sollten versuchen, das Layout und die Architektur der App unter Berücksichtigung der vorhandenen Fähigkeiten zu gestalten und zu bestimmen, welcher Teil in welcher Sprache geschrieben werden soll, und dann entsprechend erstellen.
Ich schreibe gerade ein Objective-C ++ - Framework namens Objective-X, das PURE C ++ iPHONE PROGRAMMING ermöglicht. Sie können dies tun:
#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());
}
und kompilieren Sie es mit den entsprechenden Befehlszeilenoptionen von GCC. Ich habe diese helloworld App bereits kompiliert und sie ist wie ein Zauber. ;-) Es wird bald auf GoogleCode verfügbar sein. Suchen Sie nach Objective-X oder besuchen Sie http://infotronix.orgfree.com/objectivex . eine Woche später!
Aktualisierte (aber anscheinend inaktive) URL: http://code.google.com/p/objectivex/
Es mag ein bisschen offtopisch sein, aber trotzdem. Sie können c ++ direkt auf iOS-Geräten programmieren. Schauen Sie sich die CppCode ios App an - http://cppcode.info . Ich glaube, es hilft, später C und C ++ und Objective-C zu lernen.