Je suis tout à fait pour la diversité linguistique, mais l'objectif C est insensé. Je suis donc curieux: est-il possible de coder des applications iPhone avec C ++ tout en utilisant l'API Cocoa, etc.?
Je suis tout à fait pour la diversité linguistique, mais l'objectif C est insensé. Je suis donc curieux: est-il possible de coder des applications iPhone avec C ++ tout en utilisant l'API Cocoa, etc.?
Réponses:
Réponse courte, oui, en quelque sorte. Vous pouvez utiliser Objective-C ++, que vous pouvez consulter sur Apple Developer Connection.
Si vous connaissez déjà C ++, apprendre Objective-C serait assez simple, si vous décidiez de l'essayer. Plus d'informations sur ce sujet sont également disponibles à l'ADC.
Bien qu'Objective-C semble effectivement être «insensé» au départ, je vous encourage à vous y tenir. Une fois que vous avez un moment "a-ha", tout commence soudainement à prendre un sens. Pour moi, il a fallu environ 2 semaines de concentration en Objective-C pour vraiment comprendre les frameworks Cocoa, le langage et comment tout cela s'intègre. Mais une fois que je l'ai vraiment "compris", c'était très très excitant.
Cela semble cliché, mais c'est vrai. Tenir le coup.
Bien sûr, si vous apportez des bibliothèques C ++ ou du code C ++ existant, vous pouvez utiliser ces modules avec Objective-C / Objective-C ++.
J'utilise Objective-C pour gifler l'interface utilisateur ensemble.
Mais les tripes du code sont toujours écrites en C ++.
C'est l'objectif principal d'Objective-C, l'interface de l'interface utilisateur et la gestion des événements.
Et cela fonctionne très bien dans ce but.
J'aime toujours C ++ en tant que backend du code (mais c'est principalement parce que j'aime C ++), vous pouvez également utiliser Objective-C pour le backend de l'application.
#include <XXX>
comme les fichiers C / C ++.
Tout d'abord, dire que Objective-C est "insensé" est humoristique - j'ai le livre Bjarne Stroustrup C ++ assis à mes côtés et qui affiche 1020 pages. Le PDF d'Apple sur Objective-C est 141.
Si vous voulez utiliser UIKit, il vous sera très, très difficile de faire quoi que ce soit en C ++. Toute application iPhone sérieuse conforme à l'interface utilisateur d'Apple aura besoin que ses parties de l'interface utilisateur soient écrites en Objective-C. Ce n'est que si vous écrivez un jeu OpenGL que vous pouvez vous en tenir presque entièrement à C / C ++.
Ayant une certaine expérience de cela, vous pouvez en effet utiliser du code C ++ pour votre code "core", mais vous devez utiliser objective-C pour tout ce qui est spécifique à l'iPhone.
N'essayez pas de forcer Objective-C à agir comme C ++. Au début, cela vous semblera possible, mais le code qui en résulte ne fonctionnera vraiment pas bien avec Cocoa, et vous serez très confus quant à ce qui se passe. Prenez le temps d'apprendre correctement, sans aucun C ++, comment créer des interfaces graphiques et des applications iPhone, puis connectez-vous à votre base C ++.
Vous devez utiliser Objective C pour s'interfacer avec l'API Cocoa, vous n'avez donc pas le choix. Bien sûr, vous pouvez utiliser autant de C ++ que vous le souhaitez dans les coulisses (Objective C ++ rend cela facile).
C'est un langage insensé en effet, mais c'est aussi ... assez amusant à utiliser une fois que vous y êtes un peu habitué. :-)
Je ne suis pas sûr de C ++, mais vous pouvez certainement coder des applications iPhone en C #, en utilisant un produit appelé MonoTouch .
Vous pouvez voir cet article pour une discussion détaillée sur MonoTouch Vs Obj-C: Comment choisir entre MonoTouch et Objective-C?
Je suis en train de porter une application Android gourmande en calcul écrite en Java vers iOS6. Je fais cela en portant les parties non-UI de Java vers C ++, en écrivant les parties (minimales) de l'interface utilisateur dans Obj-C et en enveloppant les premières dans une (petite) interface C en utilisant la technique standard C / C ++, de sorte que il est accessible depuis Obj-C, qui est après tout un sur-ensemble de C.
Cela a été efficace jusqu'à présent et je n'ai rencontré aucun piège. Cela semble être une approche légitime, car Xcode vous permet de créer des classes C ++ ainsi que des classes Obj-C, et certains des exemples de code officiels font les choses de cette façon. Je n'ai pas eu à sortir des interfaces officiellement prises en charge pour ce faire.
Il ne semble pas y avoir grand-chose à gagner à écrire mon code d'interface utilisateur restant en C ++ même si cela était possible, compte tenu de l'aide que vous a fournie le constructeur d'interface dans Xcode, donc ma réponse serait que vous pouvez utiliser C ++ pour presque toute votre application, ou autant que vous le jugez appropriée / pratique.
Oui mais Penser que vous pouvez programmer tout type de programme dans une seule langue est une idée erronée à moins que vous n'écriviez des programmes très simples. Objective C est pour Cocoa comme C # est pour .NET, Utilisez le bon outil pour le bon travail, Essayer de faire interagir C ++ avec Cocoa via l'écriture de code de pontage et essayer de faire en sorte que le code C ++ se comporte selon les exigences de Cocoa n'est pas une bonne idée ni attendre C ++ la performance de l'Objectif C est. Vous devez essayer de mettre en page la conception et l'architecture de l'application en tenant compte des compétences existantes et de déterminer quelle partie doit être écrite dans quelle langue, puis construire en conséquence.
J'écris actuellement un framework Objective-C ++ appelé Objective-X, qui rend PURE C ++ iPHONE PROGRAMMING possible. Vous pouvez faire comme ceci:
#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());
}
et compilez-le en utilisant les options de ligne de commande appropriées de GCC. J'ai déjà compilé cette application helloworld et elle w0rkX0rz comme un charme. ;-) Il sera bientôt disponible sur GoogleCode. Recherchez Objective-X ou visitez http://infotronix.orgfree.com/objectivex env. une semaine plus tard!
URL mise à jour (mais apparemment inactive): http://code.google.com/p/objectivex/
C'est peut-être un peu hors-sujet, mais de toute façon. Vous pouvez programmer C ++ directement sur les appareils iOS. Découvrez l'application CppCode ios - http://cppcode.info . Je crois que cela aide à apprendre c et c ++ et objective-c plus tard.