2010-04-13 31 views
7

Ahora que el monotouch está prohibido, me preguntaba si hay una forma de traducir C# (u otro idioma) en Objective-C? No me importaría usar la API de Apple siempre que no tenga que declarar mis variables en 3-4 etapas (ivar-property-synthesize-dealloc). Todo lo que quiero es un lenguaje menos prolijo, concentrarme en mi intención y no en la sintaxis del compilador.Compilar C# en el objetivo-C

+1

Apple prohibió los programas no ObjC matar a Flash. MonoTouch es daño colateral; Además, los chicos de Novell dijeron que estarían trabajando con Apple para ver si podían seguir siendo legales. – zneak

+2

Estoy de acuerdo. MonoTouch es una envoltura 100% triturada alrededor de CocoaTouch cuyo único propósito es hacer que el cacao absorba menos. Expone todo el SDK de CocoaTouch utilizando su lenguaje, por lo que las aplicaciones creadas con él se verán y se sentirán tan nativas como las escritas en ObjC. No abstrae tres marcos muy diferentes como QT does (Cocoa, Win32, KDE/GNOME/whatever). Es bastante desafortunado que pueda desaparecer. –

+0

Si está compilando para dispositivo iPhone, no necesita crear un ivar para una propiedad. El tiempo de ejecución creará un ivar para ti. Si está construyendo para el simulador, tendrá que crear un ivar. Sucks. ¡Por favor presente una boleta y haga que el simulador aspire menos! – Giao

Respuesta

7

Debe hacer una pausa para ver qué sucede realmente en lugar de asumir que Monotouch está prohibido.

O, aprende Objective-C. De todos modos, es bueno para la mente aprender un nuevo idioma. Y los marcos tendrán más sentido para ti.

5

Siempre puede definir su propio metalenuaje para objetos, escribir su significado previsto, analizar ese archivo y pegar el código recién creado en XCode.

Y si está realmente en contra de ObjC y XCode, Apple le ha dado su ultimátum: úselo o váyase.

+1

Lamentablemente, creo que esta es la respuesta correcta, Apple ha trazado la línea en la arena. –

+0

sí, tengo que usarlo. Lo sé, es un negocio, nada personal. Solo quiero ver si puedo minimizar mi sufrimiento;) metadatos y pegar es un enfoque hacky, estaba pensando en escribir en C#, luego el compilador convirtiéndolo en un lenguaje "intermedio" (C u ObjC) y luego deja que xcode lo compile en segundo plano ... –

+0

Eso es exactamente lo que prescribo (si se niega a rodar manualmente Objective-C). Escriba un compilador pequeño para convertir su formato de elección a Objective-C. Luego solo copie/pegue eso en XCode - No veo cómo eso es menos hacky que lo que usted recomienda. –

4

Si resulta que la manera en que la gente sugiere que resultará, entonces la respuesta a su pregunta en realidad no resuelve su problema.

El acuerdo SDK hace mención específica a la 'originalidad' del Objective-C (y otros idiomas). Traducir de C# a Objective-C infringe este requisito de que las aplicaciones se escriban originalmente en Objective-C.

En segundo lugar, Monotouch ya es compatible con la compilación completa de AOT.

2

Traducir sería contrario a la política de Apples porque su código debe codificarse originalmente en C, Obj -C, C++.

Procedente de originalmente aprender Java no es tan difícil. ¿Es la declaración de variables en múltiples lugares realmente su principal objeción? Es fácil de hacer y le da un control estricto sobre su programa. También se sospecha que iPhone OS 4 necesita un código nativo para poder realizar varias tareas correctamente. También tiene sentido, de lo contrario, modificarían el acuerdo de licencia actual si querían detener a Adobe.

+0

monotouch produce "código nativo" y puede ser multi tarea "amigable", solo necesita seguir reglas. He hecho ObjectiveC y tengo 7-8 aplicaciones en la tienda de aplicaciones, las he vuelto a escribir todas en C# (para ser honesto en el autobús al llegar a la oficina y regresar a casa), así que C# es mucho más fácil para mí. lo que no tiene sentido para mí es el enfoque de Apple de mi camino o la carretera. si tenían un conjunto de reglas que tu aplicación debe seguir para ser aceptable, estaba bien, pero con el idioma que escribo, mi aplicación es demasiado. de nuevo, entiendo, es su plataforma y pueden hacer lo que quieran. –

+0

Si monotouch hace todo correctamente, ¿qué sabría Apple qué idioma usaste? No les envíes tu código fuente (a menos que esto haya cambiado). La única razón por la que lo sabrían es si el SO no puede controlarlo correctamente y está produciendo errores, en cuyo caso Monotouch no lo está compilando correctamente y esto afectaría al usuario. Y si te preocupa romper el acuerdo mediante el uso de monotouch, vas a hacerlo de todos modos al tratar de traducir a Obj-C, así que ese no debería ser el problema. – Rudiger

+0

@Rudiger: monotouch hace todo absolutamente correctamente, el binario que produce, sin embargo, tiene algunos "marcadores" y "firmas" que hacen que sea obvio para Apple que el binario se compila con monotouch. hay muchas aplicaciones en la tienda de aplicaciones escritas en el objetivo c, que son geniales y hay muchas malas. muchos de ellos colapsan, otros no. muchos pierden memoria, muchos no. Lo que hace que una aplicación sea genial no es la herramienta, es el desarrollador. al prohibir ciertas herramientas nadie logra una mejor calidad. –

Cuestiones relacionadas