2016-03-23 4 views
1

Ich füge einige schnelle Klassen zum Objective-C Projekt hinzu. Das Problem ist, dass Code unter #ifdef in Objective-C-Klassen in Swift-Klassen nicht sichtbar ist. Ich habe einige statische Eigenschaften definiert, die #defines widerspiegeln, aber es ist ein großer Aufwand, über das gesamte Projekt zu gehen und das manuell zu tun. Gibt es einen einfacheren und korrekten Weg, das zu tun?Objective-C Code unter #ifdef nicht sichtbar in Swift

Hinweis: die Frage ist nicht darüber, wie man in swift ... Dies ist, wie man bereits vorhandenen definiert in objective-c, um sie in Swift sichtbar zu machen.

+1

http://stackoverflow.com/questions/24003291/ifdef-replacement-in-swift-language durch den Link oben gehen, könnte es hilfreich sein – Abi

Antwort

1

Anstatt #defines zu verwenden, warum definieren Sie keine Klasse, die consts enthält, können Sie zwischen Objektverweisen für verschiedene Kompilierungen mit wenigen Zeilen wechseln.

+0

Ich habe bereits Objective-C-Projekt so. Jetzt muss ich herausfinden, wie Swift-Klassen am einfachsten Code unter #ifdefs – Misha

+0

sehen können: http://stackoverflow.com/questions/24003291/ifdef-replacement-in-swift-language – SPlatten

0

Es wurde eine neue Build-Einstellungen eingeführt mit Xcode 8: Aktive Compilation Bedingungen

Neue Einstellung: SWIFT_ACTIVE_COMPILATION_CONDITIONS

“Active Compilation Conditions” is a new build setting for passing conditional compilation flags to the Swift compiler. 

Früher mussten wir Ihre bedingte Kompilierung Fahnen unter OTHER_SWIFT_FLAGS erklären Beachten Sie, dass "-D" der Einstellung vorangestellt wird. Zum Beispiel bedingt mit einem MYFLAG Wert kompilieren:

#if MYFLAG 
// do stuff 
#endif 

Der Wert der Einstellung -DMYFLAG

nun den Wert MYFLAG auf die neue Einstellung hinzufügen müssen wir nur passieren. Zeit, alle diese bedingten Kompilierungswerte zu verschieben!

Bitte lesen Sie meine Antwort auf einen anderen SO Beitrag: #ifdef replacement in the Swift language