2014-12-26 5 views
12

nicht finden Ich versuche, ein einfaches Framework zum Testen mit Swift erstellen.Kann die Swift-Datei in Framework-Header

Ich hatte die Frage in objective-c mit "create the framework" before. Es wurde gelöst.

Aber ich versuche, Framework mit swift zu erstellen.

Ich stoße auf das Problem. Ich kann die MyUtility-Datei nicht in die Header-Datei importieren.

wie unten:

enter image description here enter image description here

jemand wissen, wie die Datei in meinem benutzerdefinierten Rahmen zu importieren?

vielen Dank.

============== bearbeiten ===========

für @Jerome L

enter image description here

+0

Check diese Antwort: http://stackoverflow.com/questions/25823542/cant-access-swift-class-from-custom-dynamic-framework-swift –

Antwort

10

Um zu Import Swift in Objective C, müssen Sie die folgende Syntax verwenden:

#import <ProductName/ProductModuleName-Swift.h> 

Also ich in Ihrem Fall ti erraten wäre so etwas wie:

#import <MyFramewordSwift/MyUtility-Swift.h> 

können Sie mehr Details here

+0

Danke @Jerome L, aber ich zu ändern # Import , Show-Datei nicht gefunden. @@ – dickfala

+0

Entsprechend der Apple-Dokumentation sollten Sie zuerst: "Stellen Sie unter Build-Einstellungen in Verpackung sicher, dass die Defines-Moduleinstellung für dieses Framework-Ziel festgelegt ist Ja.". Entschuldigung, ich habe gerade keinen xcode zum Testen. Sie können immer noch dem Link folgen, auf den ich meine Antwort geschrieben habe. Es wird detailliert erläutert, wie der Import durchgeführt wird. Danke –

+0

hatte ich definiert Modul zu ja, ich hatte die Build-Einstellungen in meinem Artikel bearbeiten Teil, können Sie das Foto verweisen.Ich weiß nicht, wo das Problem in meinem Projekt oder Code ist. Vielen Dank. – dickfala

3

Ich lief in das gleiche Problem finden. Ich habe ein all-swift-Projekt und mache einen reinen, schnellen Rahmen. Um das Ziel in der gleichen Projektdatei zu erhalten, um die Klassen in meinem Framework zu sehen, musste ich den Modifikator public vor meiner Klassendeklaration und vor jeder Methode, auf die ich zugreifen wollte, explizit hinzufügen. Hier ist ein Beispiel für eine der Klassen.

private let _sharedInstance = SomeManager() 

public class SomeManager: NSObject { 

    //MARK: - Singleton instance 

    public class var sharedManager : SomeManager { 
     return _sharedInstance 
    } 

    public func outwardFacingMethod()-> Void { 
     internalMethod() 
    } 

    private func internalMethod()-> Void { 

    } 

} 

Die Dokumentation besagt, dass dies hier https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html ist, ist aber ein wenig begraben. Wenn Sie zum Ziel Importieren-Code Abschnitt nach unten scrollen von im selben Rahmen genannt sagt es

Da die erzeugte Header für einen Rahmenziel Teil der Rahmen der öffentlichen Schnittstelle ist nur markiert Erklärungen mit der Öffentlichkeit Modifikator erscheint in der generierten Kopfzeile für ein Framework-Ziel.