Was ist Objective C ++? [geschlossen]


164

Was ist Objective C ++ und kann ich diese Sprache in Xcode verwenden?



Der enge Grund, „schwer zu sagen, was gefragt wird“, war ein älterer Grund für das Schließen einer Frage. Heutzutage wäre der Grund "zu weit gefasst", da das OP wirklich zwei verschiedene Fragen sind. Erstens würde die Erklärung von Objective C ++ mehrere Seiten in Anspruch nehmen, und zweitens wird die Codierung für iOS speziell mit Objective C durchgeführt, und XCode ist die Standard-IDE für die iOS-Entwicklung. Obwohl beide verwandt sind, ist sie selbst eine zu große Frage. Diese Art von Fragen sollte auf die Dokumentationsseite verschoben werden.
Kelly S. French

1
@ DaveVoyles-MSFT: Es fällt mir schwer, jemanden ernst zu nehmen, der der Meinung ist, dass die Ablehnung einer Frage und der mechanisierte, industrialisierte, organisierte, systematische Massenmord an über 6 Millionen Menschen dasselbe sind.
Jörg W Mittag

3
@ JörgWMittag Es tut mir leid, aber Ihre Antwort wurde von den Stack Overflow-Moderatoren als keine echte Frage geschlossen.
Dave Voyles

1
@ DaveVoyles-MSFT: Der Grund für die enge Abstimmung "Keine echte Frage" wurde vor Jahren entfernt.
Jörg W Mittag

Antworten:


156

Objective-C ++ ist einfach Quellcode, der Objective-C-Klassen und C ++ - Klassen (zwei völlig unabhängige Entitäten) mischt. Ihr C ++ - Code funktioniert wie zuvor, und die resultierende ausführbare Datei wird mit der Objective-C-Laufzeit verknüpft, sodass auch Ihre Objective-C-Klassen funktionieren. Sie können es definitiv in Xcode verwenden - benennen Sie Ihre Dateien mit der .mmErweiterung.

Vielleicht möchten Sie auch Apples (leider gelöschte, aber archivierte) Dokumentation zu Objective-C ++ lesen .


2
Der Abschnitt mit den Einschränkungen in diesem Link sagt dies und es lohnt sich, Objective-C ++
wie

33

Objective-C ++ ist Objective-C (wahrscheinlich mit Cocoa Framework) mit der Fähigkeit, mit C ++ - Code (wahrscheinliche Klassen) zu verknüpfen.

Ja, Sie können diese Sprache in Xcode verwenden, um sie für Mac OS X, iPhone / iPodTouch und iPad zu entwickeln. Es funktioniert sehr gut.

Sie müssen in Ihrem Projekt nichts Seltsames tun, um Objective-C ++ zu verwenden. Benennen Sie einfach Ihre Objective-C-Dateien mit der Erweiterung .mm (anstelle von .m ) und los geht's.

Es ist meine Lieblingsarchitektur: Entwickeln Sie eine Basisklassenbibliothek meines Spiels / meiner Anwendung in C ++, damit ich sie auf anderen Plattformen (Windows, Linux) wiederverwenden und Cocoa nur für die iPhone / iPad- Benutzeroberfläche verwenden kann .


10
Es geht nicht darum , mit C ++ zu verknüpfen - meinten Sie das Mischen ?
Georg Fritzsche

6

Wenn Sie Objective-c ++ verwenden möchten, aber Ihre Dateien nicht benennen möchten, .mmlesen Sie meine Antwort auf eine ähnliche Frage .

Wenn Sie auf Ihr Projekt klicken, klicken Sie auf Tagets-> Build-Einstellungen, ohne .m in .mm oder ähnliches zu ändern. Gehen Sie bis zu "LLVM GCC 4.2 - Languages" (neuer xcode sagt "Apple LLVM Compiler 4.2" ) wird Quellen kompilieren sehen , wenn dieser Wert in Objective-C ++ geändert wird .


4
Obwohl Sie dies tun können, ist es nicht so portabel und kann für jemanden verwirrend sein, der versucht, Ihren Code zu verwalten, wobei .s ein Header und .r Implementierungsdateien sind.
Grady Player

Wo ziehst du .s und .r her? Sie können Standard-.m für die Methodendatei und .h für den Header verwenden, als ob Sie einfaches Objective-c verwendet hätten.
John Riselvato

Ich sage nur, dass .m etwas bedeutet, und es etwas anderes bedeuten zu lassen, ist kein Standard.
Grady Player

In Objective-c müsste Objective-c ++ aktiviert sein, um den Standardvektor (einen c ++ - Standard) zu verwenden. Es wäre für mich nicht sinnvoll, eine andere Dateityp-Erweiterung zu erstellen, nur um Vektoren in meinem Objective-C-Code zu verwenden.
John Riselvato

13
absolut wäre es, es würde "cout" oder irgendetwas verwenden, das nicht Teil von C. ist
Grady Player
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.