2014-12-26 2 views
12

Sto provando a creare un framework semplice per il test con swift.Impossibile trovare il file swift nell'intestazione del framework

Avevo posto la domanda nell'obiettivo-c con "creare il framework" before. È stato risolto

Ma sto cercando di creare un framework con swift.

Ho riscontrato il problema. Non riesco a importare il file MyUtility nel file di intestazione.

come di seguito:

enter image description here enter image description here

ho nessuno sa come importare il file nel mio quadro personalizzato?

grazie mille.

============== modificare ===========

per @Jerome L

enter image description here

+0

controllo questa risposta: http://stackoverflow.com/questions/25823542/cant-access-swift-class-from-custom-dynamic-framework-swift –

risposta

10

Al fine di importazione Swift in Objective C, è necessario utilizzare la seguente sintassi:

#import <ProductName/ProductModuleName-Swift.h> 

Quindi credo che nel tuo caso ti sarebbe qualcosa di simile:

#import <MyFramewordSwift/MyUtility-Swift.h> 

Potete trovare maggiori dettagli here

+0

Grazie @Jerome L, ma posso cambiare a # importare , è il file di presentazione non trovato. @@ – dickfala

+0

In base alla documentazione di Apple dovresti prima: "In Impostazioni di compilazione, in Packaging, assicurati che l'impostazione Definisci modulo per quell'obiettivo quadro sia impostata su Sì.". Spiacente, non ho xcode in questo momento per testare. Puoi ancora seguire il link che ho inserito nella mia risposta. Spiegherà in dettaglio come eseguire l'importazione. Grazie –

+0

Avevo impostato definisce il modulo su sì, avevo postato le impostazioni di compilazione nella mia parte di modifica dell'articolo, è possibile fare riferimento alla foto.Non so dove sia il problema nel mio progetto o codice. Grazie mille. – dickfala

3

ho incontrato lo stesso problema. Ho un progetto tutto veloce e sto facendo un quadro puramente rapido. Per ottenere il target nello stesso file di progetto per vedere le classi nel mio framework, avevo bisogno di aggiungere esplicitamente il modificatore public davanti alla mia dichiarazione di classe e davanti a qualsiasi metodo che volevo fosse accessibile. Ecco un esempio di una delle classi.

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 { 

    } 

} 

La documentazione questo in qui https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, ma è un po 'sepolto. Se si scorre verso il basso per la sezione chiamata Importazione di codice all'interno dello stesso framework di destinazione si dice

Poiché l'intestazione generato per un target quadro fa parte dell'interfaccia pubblica del quadro , solo le dichiarazioni contrassegnati con il pubblico il modificatore appare nell'intestazione generata per un obiettivo quadro.