Kann ich Swift-, Objective-C-, C- und C ++ - Dateien im selben Xcode-Projekt haben?
Können alle 4 Sprachen verwendet werden, die im selben Projekt überhaupt, und wenn ja, wie?
Gibt es ähnliche Fragen in der Geschmacksrichtung: Kann ich mischen Swift mit C++? Wie die Objective - C .mm-Dateienzu dem die akzeptierte Antwort ist keine.
Mit Bridging Header
ausreichend .h
nicht enthalten C++
Aussagen Objective-C
Wrapper, wenn .h
enthalten C++
.mm
- Dateien, um die eigentliche Verpackung des C++
Klassen, und .swift
können die 4 Sprachen (5, wenn man Objective-C++
) bauen und link in eine einzelne ausführbare Datei?
InformationsquelleAutor der Frage SwiftArchitect | 2015-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
JA.
Können Sie mischen
Swift
C
C++
Objective-C
&Objective-C++
Dateien in der gleichen Xcode-Projekt.C
C++
Objective-C-wrapper für C++
Objective-C
Objective-C++
Swift
- Bridging-Header.h
Nicht importieren
CPP.hpp
header-Datei, nicht wegen der Namenskonvention, sondern weil es enthält dieclass
Stichwort.Aufruf von Swift
.h (Header)
(Siehe Punkt 3 in dieser Stack Overflow-Antwort)
Ausgabe
Kommentare
Cy-4AH:
Ja. Müssen Sie nur wickeln Sie
C++
inC
oderObjective-C
zu verwenden, inSwift
.Tommy
In der Tat, ich habe ein Projekt, was genau das macht.
C++
für den Schub der abstrakten cross-Plattform-Modell Material mit etwasC
Teile unterhalb;Objective-C
wickelnC++
Klassen fürSwift
ZweckeSwift
zu binden alle, die eine Unterklasse vonNSDocument
mit einige benutzerdefinierte Ansichten, die Sie befragen dieC
Zeug.MaddTheSane
Hinzugefügt, die
extern "C"
wrapper wie pro Ihre ausgezeichneten Vorschlag. Zum aufrufen der C Methodevoid hello_c(const char * name)
aus C++ Methodehello_cpp(const std::string& name)
fügen Sie#include "C.h"
- und call -hello_c(name.c_str());
.Keith Adler
Den neue SO 32541268: Jetzt mit Parametern!
► Finde diese Lösung auf GitHub und weitere details auf Swift-Rezepte.
InformationsquelleAutor der Antwort SwiftArchitect