Estoy totalmente a favor de la diversidad del lenguaje, pero el Objetivo C es una locura. Así que tengo curiosidad: ¿es posible codificar aplicaciones de iPhone con C ++ mientras se usa la API de Cocoa, etc.?
Estoy totalmente a favor de la diversidad del lenguaje, pero el Objetivo C es una locura. Así que tengo curiosidad: ¿es posible codificar aplicaciones de iPhone con C ++ mientras se usa la API de Cocoa, etc.?
Respuestas:
Respuesta corta, sí, más o menos. Puede usar Objective-C ++, que puede leer en Apple Developer Connection.
Si ya conoces C ++, aprender Objective-C sería bastante simple si decidieras probarlo. También hay más información sobre ese tema en el ADC.
Aunque Objective-C realmente parece estar "loco" inicialmente, le animo a que se quede con él. Una vez que tienes un momento "a-ha", de repente todo comienza a tener sentido. Para mí, me llevó cerca de 2 semanas concentrarme en Objective-C para comprender realmente los marcos de Cocoa, el lenguaje y cómo encaja todo. Pero una vez que realmente lo "entendí", fue muy, muy emocionante.
Suena cliché, pero es verdad. Soportar hasta el fin.
Por supuesto, si trae bibliotecas C ++ o código C ++ existente, puede usar esos módulos con Objective-C / Objective-C ++.
Yo uso Objective-C para juntar la interfaz de usuario.
Pero las entrañas del código todavía están escritas en C ++.
Ese es el objetivo principal de Objective-C, la interfaz de usuario y el manejo de los eventos.
Y funciona muy bien para ese propósito.
Sin embargo, todavía me gusta C ++ como el backend para el código (pero eso es principalmente porque me gusta C ++). También podrías usar Objective-C para el backend de la aplicación.
#include <XXX>
como C / C ++.
En primer lugar, decir que Objective-C es "demente" es chistoso. Tengo el libro Bjarne Stroustrup C ++ sentado a mi lado, con 1020 páginas. El PDF de Apple en Objective-C es 141.
Si quieres usar UIKit, será muy, muy difícil que hagas algo en C ++. Cualquier aplicación de iPhone seria que se ajuste a la interfaz de usuario de Apple necesitará que sus partes de la interfaz de usuario se escriban en Objective-C. Solo si está escribiendo un juego OpenGL puede apegarse casi por completo a C / C ++.
Al tener cierta experiencia en esto, puede usar el código C ++ para su código "central", pero debe usar el objetivo C para cualquier cosa específica del iPhone.
No intentes forzar a Objective-C a actuar como C ++. Al principio le parecerá que esto es posible, pero el código resultante realmente no funcionará bien con Cocoa, y se sentirá muy confundido sobre lo que está sucediendo. Tómese el tiempo para aprender correctamente, sin ningún tipo de C ++, cómo construir GUI y aplicaciones de iPhone, luego enlace en su base de C ++.
Debe usar el Objetivo C para interactuar con la API de Cocoa, por lo que no hay otra opción. Por supuesto, puede usar tanto C ++ como desee detrás de escena (Objective C ++ lo hace fácil).
Es un lenguaje loco, pero también es ... divertido de usar una vez que estás un poco acostumbrado. :-)
No estoy seguro acerca de C ++, pero definitivamente puede codificar aplicaciones de iPhone en C #, usando un producto llamado MonoTouch .
Puede ver esta publicación para una discusión detallada sobre MonoTouch Vs Obj-C: ¿Cómo decidir entre MonoTouch y Objective-C?
Estoy en el proceso de portar una aplicación de Android de computación intensiva escrita en Java a iOS6. Estoy haciendo esto al portar las partes que no son de UI de Java a C ++, escribir las partes de UI (mínimas) en Obj-C y envolver las primeras en una interfaz C (pequeña) usando la técnica estándar de C / C ++, de modo que se puede acceder desde Obj-C, que después de todo es un superconjunto de C.
Esto ha sido efectivo hasta ahora, y no he encontrado ningún problema. Parece ser un enfoque legítimo, ya que Xcode le permite crear clases C ++, así como clases Obj-C, y parte del código de muestra oficial hace las cosas de esta manera. No he tenido que salir de ninguna interfaz oficialmente compatible para hacer esto.
Parece que no habría mucho que ganar escribiendo mi código de interfaz de usuario restante en C ++, incluso si fuera posible, en vista de la ayuda que le brindó el creador de interfaces en Xcode, por lo que mi respuesta sería que puede usar C ++ para casi toda su aplicación, o la cantidad que considere apropiada / conveniente.
Sí, pero pensar que puede programar todo tipo de programa en un solo idioma es una idea defectuosa a menos que esté escribiendo programas muy simples. El objetivo C es para Cocoa como C # para .NET. Use la herramienta adecuada para el trabajo correcto. Intentar hacer que C ++ interactúe con Cocoa escribiendo código de puente e intentar hacer que el código C ++ se comporte de acuerdo con los requisitos de Cocoa no es una buena idea ni esperar que C ++ El rendimiento del objetivo C es. Debe intentar diseñar el diseño y la arquitectura de la aplicación teniendo en cuenta las habilidades existentes y determinar qué parte debe escribirse en qué idioma y luego construir en consecuencia.
Actualmente estoy escribiendo un marco Objective-C ++ llamado Objective-X, que hace posible la PROGRAMACIÓN PURA C ++ iPHONE. Puedes hacer así:
#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());
}
y compilarlo usando las opciones de línea de comando apropiadas de GCC. Ya he compilado esta aplicación helloworld y w0rkX0rz es un encanto. ;-) Pronto estará disponible en GoogleCode. Busque Objective-X o visite http://infotronix.orgfree.com/objectivex aprox. ¡una semana después!
URL actualizada (pero aparentemente inactiva): http://code.google.com/p/objectivex/
Puede ser un poco fuera de tema, pero de todos modos. Puede programar c ++ directamente en dispositivos iOS. Echa un vistazo a la aplicación CppCode ios - http://cppcode.info . Creo que ayuda aprender C y C ++ y Objective-C más adelante.