2008-11-21 11 views

Respuesta

3

El objetivo C++ está bien definido y es compatible con el gcc de Apple.

Pero no se pueden mezclar las clases C++ y Object C, lo que hace que esto sea bastante complicado bastante rápido. No creo que haya muchos proyectos en la naturaleza que combinen C++ y Objective C en gran medida.

Esto depende mucho de su biblioteca, pero si (realistamente) fuera posible, envolvería el C++ dentro de una biblioteca C, utilizando puntos de entrada extern "C" para todas las funcionalidades reales, y vincularía eso dentro de su código C objetivo para tu aplicación de iphone.

4

Si bien es cierto que no puede mezclar clases C++ en Objective-C, puede mezclarlo con Objective-C++, que creo que también es compatible con el iPhone. La integración del código de C++ con una aplicación de iPhone no debería ser un problema, pero si quieres estar seguro, entonces debes construir tu código como una biblioteca y luego vincularlo desde tu aplicación de iPhone; De esta forma, no tendrá que preocuparse por mezclar código Obj-C y clases de C++.

En cuanto a la aprobación de Apple, nadie puede darle una respuesta definitiva en cuanto a qué puede o no puede calificar su aplicación para su inclusión en la tienda, ya que Apple está bastante cerrada sobre todo el proceso. Sin embargo, es bastante claro por ahora que ciertos tipos de aplicaciones no van a hacer el corte; a saber:

  • Aplicaciones que "abusan" o tuercen el iPhone SDK en formas que a Apple no le gustan. IE, control de brillo del dispositivo
  • El uso de demasiados recursos de ancho de banda o del sistema (drenando la vida de la batería innecesariamente)
  • Duplicación funcionalidad de Apple en alguna parte (es decir, hacer un cliente de correo, navegador web, etc.)
  • Abusando del niveles y esquemas de precios

En realidad, es mejor solo buscar ejemplos de aplicaciones prohibidas para tener una mejor idea de ello. Pero la conclusión es que no es cómo su aplicación hace algo, es lo que su aplicación está haciendo que dará lugar a su prohibición.

+0

"duplicar la funcionalidad de apple en algún lado", es curioso porque, no hace muchas ediciones, existía el problema de que los proveedores de navegadores no estaban muy contentos con que IE tuviera el monopolio de Windows. Escuché que hubo una demanda involucrada. Pero bueno, no es lo mismo con la manzana, como, en absoluto – lurscher

2

Acabo de comenzar con el desarrollo de iPhone, pero he podido utilizar con éxito algunas librerías de C++ existentes sin ningún cambio. Traje algunas clases de OpenGL que ya he escrito y funcionan bien, ya que las libs en el iPhone son todas C y no Obj-C. Estoy, por ejemplo, cargando una textura en una matriz GLubyte usando Obj-C para obtener los recursos, tamaño, etc. pasando esos valores a mi código C++ que hace las llamadas gl para crear la textura. Lo mismo aplica para cargar geometría.

Simplemente cambie sus archivos .m a .mm y todo parece funcionar. Las clases Objective C++ pueden tener miembros que sean clases C++ (aunque no creo que se aplique lo contrario, lo que podría ser un problema).

Cuestiones relacionadas