2010-04-13 13 views
7

Ora che il monotouch è vietato, mi chiedevo se c'è un modo per tradurre C# (o qualche altra lingua) in Objective-C? Non mi dispiacerebbe usare l'API di Apple se non dovessi dichiarare le mie variabili in 3-4 fasi (ivar-property-synthesize-dealloc). Tutto quello che voglio è un linguaggio meno verboso, per concentrarmi sul mio intento e non sulla sintassi del compilatore.Compilare C# nell'obiettivo-C

+1

Apple ha vietato i programmi non ObjC per eliminare Flash. MonoTouch è un danno collaterale; inoltre, i ragazzi di Novell hanno detto che avrebbero lavorato con Apple per vedere se potevano rimanere legali. – zneak

+2

Sono d'accordo. MonoTouch è un involucro a terra al 100% di CocoaTouch il cui unico scopo è quello di far succhiare meno il cacao. Espone tutto il CocoaTouch SDK usando il suo linguaggio, quindi le app create con esso sembreranno originali come quelle scritte in ObjC. Non astraggono tre framework molto diversi come QT (Cocoa, Win32, KDE/GNOME/qualunque). È piuttosto sfortunato che potrebbe andare via. –

+0

Se stai costruendo per il dispositivo iPhone, non è effettivamente necessario creare un ivar per una proprietà. Il runtime creerà un ivar per te. Se stai costruendo per il simulatore, dovrai creare un ivar. Fa schifo. Si prega di presentare un ticket e di far succhiare meno il simulatore! – Giao

risposta

7

Si dovrebbe fare una pausa per vedere cosa succede realmente, invece di assumere che Monotouch sia stato bandito.

Oppure, imparare Objective-C. È buono per la mente imparare comunque una nuova lingua. E i quadri avranno più senso per te.

5

È sempre possibile definire il proprio linguaggio meta per gli oggetti, scrivere il significato desiderato, analizzare il file e incollare il codice appena prodotto in XCode.

E se sei davvero morto contro ObjC e XCode, Apple ti ha dato il tuo ultimatum: usalo o parti.

+1

Purtroppo, penso che questa sia la risposta giusta, Apple ha tracciato la linea nella sabbia. –

+0

sì, devo usarlo. Lo so, è affari, niente di personale. Voglio solo vedere se riesco a minimizzare la mia sofferenza;) il meta data e incolla è un approccio hacky, stavo pensando di scrivere in C#, quindi il compilatore convertirlo in un linguaggio "intermedio" (C o ObjC) e poi lascia che xcode lo compili in background ... –

+0

Questo è esattamente quello che sto prescrivendo (se ti stai rifiutando di lanciare a mano Objective-C). Scrivi un piccolo compilatore per convertire dal tuo formato di scelta in Objective-C. Quindi copialo e incollalo in XCode - Non vedo come sia meno hacky di quello che consigli. –

4

Se risulta che le persone stanno suggerendo che si rivelerà, allora la risposta alla tua domanda in realtà non risolve il tuo problema.

L'accordo SDK fa specifico riferimento all '"originalità" dell'obiettivo C (e di altre lingue). La traduzione da C# a Objective-C viola questo requisito che le applicazioni vengano originariamente scritte in Objective-C.

In secondo luogo, Monotouch supporta già la compilazione completa AOT.

2

La traduzione sarebbe contro la politica di Apples perché il codice deve essere originariamente codificato in C, Obj -C, C++.

Provenire dall'apprendimento iniziale di Java non è poi così difficile. La dichiarazione delle variabili in più punti è davvero la tua obiezione principale? È facile da fare e ti dà un controllo stretto sul tuo programma. Si sospetta inoltre che iPhone OS 4 necessiti di codice nativo per poter eseguire correttamente il multitasking. Ha anche senso che altrimenti avrebbero modificato l'attuale accordo di licenza se volevano fermare Adobe.

+0

monotouch produce "codice nativo" e può essere multi-task "amichevole", ha solo bisogno di seguire le regole. Ho fatto ObjectiveC e ho 7-8 app in appstore, ho riscritto tutte in C# (per essere onesto sul bus che arriva in ufficio e tornare a casa), quindi C# è molto più facile per me. quello che non ha senso per me è l'approccio di Apple del mio modo o dell'autostrada. se avessero un insieme di regole che la tua app deve seguire per essere accettabile, va bene, ma con quale lingua scrivo la mia app è un po 'troppo. di nuovo, capisco, è la loro piattaforma e possono fare ciò che vogliono. –

+0

Se monotouch fa tutto in modo assolutamente corretto, cosa farebbe sapere a Apple quale lingua hai usato, non inviare il codice sorgente a loro (a meno che questo non sia cambiato). L'unica ragione che potrebbero sapere è se il sistema operativo non può controllarlo correttamente e sta producendo errori, nel qual caso Monotouch non lo compila correttamente e questo potrebbe influenzare l'utente. E se sei preoccupato di rompere l'accordo usando il Monotouch, lo farai comunque cercando di tradurre in Obj-C in modo che non dovrebbe essere il problema. – Rudiger

+0

@Rudiger: monotouch fa tutto in modo assolutamente corretto, il file binario che produce ha tuttavia alcuni "marker" e "firme" che rendono ovvio ad Apple che il binario è compilato con monotouch. ci sono molte app su appstore scritte nell'obiettivo c che sono fantastiche e ci sono molte schifezze. molti di loro si bloccano, molti no. molte perdite di memoria, molte no. ciò che rende grande un'app non è lo strumento, è lo sviluppatore. vietando alcuni strumenti nessuno raggiunge una qualità migliore. –