Müssen Sie in der Entwicklung von Mac OS X-Anwendungssoftware Objective-C verwenden, um ein ausführbares Format zu kompilieren und zu verknüpfen?

2

Ich meine, ist Objective-C die einzige verfügbare Sprache, oder können Sie einen Standard-C-Compiler / Linker verwenden, der für das ausreichende ausführbare Format (Mach-O / PEF) optimiert ist?

Meine grundlegende Frage ist, ob andere Sprachen verwendet werden können, um das entsprechende Objekt-, Binär- oder andere gemeinsam genutzte Bibliotheksdateiformat von Code zu generieren, der von Mac OS X-ähnlichen Versionen analysiert und geladen wird.

(ZB C, C ++, D usw.?)

OS XIII
quelle

Antworten:

1

Sie können auch C oder C ++ verwenden, um Binärdateien und ausführbare Dateien zu kompilieren. Objective-C ist hauptsächlich die Quelle für die Entwicklung der MacOS-Benutzeroberfläche (Cocoa), aber selbst für die letzteren Beispielprojekte steht noch die alte Schuloberfläche (Carbon) zur Verfügung, und Dokumente sind heutzutage schwer zu finden.

Wenn Sie jedoch ein Tool erstellen möchten, das wie klassische Unix-Tools (stdin / stdout) oder eine gemeinsam genutzte Bibliothek funktioniert, sind C oder C ++ absolut brauchbare Lösungen. Sie können beispielsweise Xcode herunterladen und über die GUI oder die Befehlszeile (GCC) ganz einfach ein einfaches int main(int, char**) { printf("Hello World!"); return 0; }Programm kompilieren .

Außerdem ist Objective-C nur eine C-Erweiterung, sodass Sie seine Funktionen nicht verwenden müssen.

Grezgory
quelle
Aber können Sie C ++ verwenden, um Cocoa-API-Funktionen aufzurufen? Scheint möglich zu sein, wenn sich zwischen den C ++ - und Objective-C-Aufrufen eine Klebeschicht befand, aber gibt es so etwas?
Eric
1
@Eric nicht genau, aber mit Objective-C ++ können Sie sowohl C ++ als auch Cocoa verwenden. Sie können auch andere C ++ - GUI-Bibliotheken wie Qt ++, GTK, Wx verwenden. Aber wirklich am besten Lernziel C
Mark
@Eric Sie können die object-c-Laufzeitbibliothek (C-Funktionen) gezielt objc_msgSendund verwenden sel_registerName. Siehe /usr/include/objc/objc.hund message.h. Ein Objective-C-Compiler ordnet tatsächlich jede Nachricht einem Aufruf von zu objc_msgSend.
Ughoavgfhw
@Eric. Mark hat recht, es gibt Objective-C ++, eine Erweiterung von C ++, mit der Sie Cocoa von C ++ aus verwenden können.
Grezgory
0

Es gibt viele andere Sprachen, die zum Erstellen von iOS-Apps verwendet werden können. Xojo ist eine der einfacheren Möglichkeiten, wenn Sie keine fundierten Programmiererfahrungen haben.

Paul Lefebvre
quelle