2016-04-26 4 views
0

Ich habe eine schnelle Nachkomme der Klasse NSObject und markiert mit @objc. Ich habe alles, was in Apple doc about interoperability beschrieben ist, und zahlreiche Fragen zum Stack-Überlauf erledigt. Mein Xcode-generated header (TargetName-Swift.h) ist von Xcode erstellt (ich weiß, es ist sicher - es in abgeleiteten Datenordner, und ich SWIFT-Code innerhalb des gleichen Ziels von objc TargetName-Swift.h durch den Import zugreifen können). Ich kann jedoch nicht auf Xcode-generated header von meinem Unit Tests Ziel zugreifen. Xcode beklagt, dass #import <ProductName/ProductModuleName-Swift.h> file not found. Ich habe den Produkt-/Modulnamen mehrmals überprüft - sie sind korrekt.Wie gelangt man zum schnellen Code im Hauptziel von Ziel-C-Code vom Testziel?

Es wird nicht einmal in einem neuen Projekt gefunden, das mit Xcode 7.3 erstellt wurde. (trotz Einstellungen Defines module bis YES, Swift-Klassen public, @objc und Nachfolger von NSObject/ViewController/etc)

Was mache ich falsch? Könnte es ein Fehler in Xcode sein?

Antwort

0

Es scheint, als ob die einzige Möglichkeit, schnellen Code von Ziel-C-Code in verschiedenen Ziel zu erhalten, Xcode-generated header zu User Header Search Path in Ziel hinzufügen, wo Ziel-c-Code befindet.

Wenn Ihr SWIFT-Code im Hauptziel und Ziel-C im Testziel ist, können Sie $(CONFIGURATION_TEMP_DIR)/$(PROJECT_NAME).build/DerivedSources verwenden. Beachten Sie, dass dieser Pfad davon ausgeht, dass Ihr Hauptziel denselben Namen wie Project name hat (in den meisten Fällen ist dies der Fall, da Xcode standardmäßig solche Namen erstellt).

Verwandte Themen