2014-10-13 7 views
6

Ho riscontrato un problema durante l'inizializzazione di AFHTTPSessionManager nella mia classe swift. Ho aggiunto AFNetworking usando i pod nel mio progetto. Mostra l'uso errato del tipo non dichiarato. Ma quando premo CMD + clic su AFHTTPSessionManager mi porta alla classe giusta.Problema di bridging durante l'utilizzo di AFNetworking con pod in un progetto Swift

This is my bridging header class

Ho aggiunto colmare intestazione e la classe AFNetworking.h importati in esso. Ho provato a risolvere questo problema aggiungendo l'intestazione di bridging in molti modi. 1- Ho creato colmare classe colpo di testa me stesso con la creazione di nuovi file di intestazione 2- Ho creato Classe C prova oggettiva nel progetto rapido e ha aggiunto colmare intestazione quando chiede di aggiungere un'intestazione ponte in progetto.

This is how I set build settings

This is how I used AFNetworking in my Swift class

Colmare intestazione, inoltre, non ha funzionato con me stessa classe di test creato quando ho cercato di inizializzare nella mia classe rapida.

Qualcuno può aiutarmi a risolvere questo problema?

+0

Ciao, So che questo post è troppo vecchio, ma voglio solo condividere la mia esperienza: ho avuto esattamente lo stesso problema. Ho creato i file (file swift) prima di configurare il bridge. Dopo, ho configurato il bridge (file, impostazioni di costruzione, ecc.). E NO, non funziona mai.Dopo tanto tempo e ricerche, provo qualcosa di stupido: ho cancellato tutti i file all'interno dei miei progetti che hanno bisogno di una libreria esterna e li ho ricreati. Mi credi quando dico che dopo questa stupida operazione tutte le cose funzionano e sono in grado di usare AFNetworking che pochi minuti di laters erano "irrisolvibili"? –

risposta

6

Conosco il dolore ... Mi sono imbattuto negli stessi problemi cercando di far funzionare AFN in un parco giochi. Non ho avuto successo in questo sforzo. Ma ha funzionato nel progetto e ho imparato alcune cose lungo la strada.

In primo luogo, a configurare l'intestazione colmare in impostazioni di generazione del mio progetto (come avete fatto) e l'importazione AFN in questo modo:

#import <AFNetworking/AFNetworking.h> 

In secondo luogo, ho impostato l'impostazione "Definisce modulo" per la costruzione Pods Progetto Sì .

Poi ho eseguito una build di pianura (Prodotto -> Costruire o Opzione + B) per vedere se ci sono voluti. Quindi ho lanciato il simulatore.

+2

Proprio per questo, questo non ha funzionato per me. – Carlo

+2

Inoltre, non dimenticare di "importare" i nuovi moduli creati nel tuo file .swift, ad esempio: import AFNetworking Nota, che questo è _non_ l'intestazione bridging, ma il file swift –

+1

Era la parte "import" che finalmente ha funzionato per me Non mi aspettavo che dal momento che AFN è nell'intestazione del bridging ... –

0

Sono riuscito a farlo funzionare tramite il collegamento this.

Poi nel file di intestazione colmare, ho importato il quadro AFNetworking con come farebbe con qualsiasi quadro. Ho anche importato BButton.h, che è una libreria 3rd party che non è un quadro pod, ma qualcosa ho messo direttamente nel mio progetto

#import "BButton.h" 
#import <AFNetworking/AFNetworking.h> 

Poi nel file di Swift che chiama il codice AFNetworking, ho dovuto importare AFNetworking ma non bButton

import UIKit 
import AFNetworking 

class RootViewController: UIViewController { 

    @IBOutlet weak var emailButton: BButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

     // Set the icon for the email signup button 
     self.emailButton!.setTitle(NSLocalizedString("", comment: ""), forState: UIControlState.Normal) 
     self.emailButton!.setType(BButtonType.Primary) 
     self.emailButton!.addAwesomeIcon(FAIcon.FAEnvelope, beforeTitle: true) 


     let manager = AFHTTPRequestOperationManager() 

     manager.GET(
      "http://headers.jsontest.com", 
      parameters: nil, 
      success: { (operation: AFHTTPRequestOperation!, 
       responseObject: AnyObject!) in 
       println("JSON: " + responseObject.description) 
      }, 
      failure: { (operation: AFHTTPRequestOperation!, 
       error: NSError!) in 
       println("Error: " + error.localizedDescription) 
      } 
     ) 

    } 

} 

Speranza che aiuta

0

Accanto a tutto quello che avete fatto, aggiungere "use_frameworks!" bandiera per il vostro Podfile, a guardare come questo:

target 'appName' do 
    use_frameworks! 
    pod 'AFNetworking' 
end 

corsa il "pod installare" il comando di nuovo

Problemi correlati