2014-10-13 23 views
6

Mam problem, gdy inicjuję menedżera AFHTTPSessionManager w mojej klasie szybkości. Dodałem AFNetworking używając strączków w moim projekcie. Pokazuje użycie błędu typu niezadeklarowanego. Ale kiedy naciśniesz CMD + Kliknij na AFHTTPSessionManager zabierze mnie do właściwej klasy.Problem pomostowy podczas używania AFNetworking z kapsułami w projekcie Swift

This is my bridging header class

Dodałem pomostowych nagłówek i importowane klasę AFNetworking.h w nim. Próbowałem rozwiązać ten problem przez dodanie nagłówka pomostowego na wiele sposobów. 1- Stworzyłem pomostową klasę nagłówka samodzielnie, tworząc nowy plik nagłówkowy 2- Stworzyłem obiekt klasy testowej c w projekcie szybkim i dodano nagłówek pomostowy, gdy prosi o dodanie nagłówka pomostowego w projekcie.

This is how I set build settings

This is how I used AFNetworking in my Swift class

Bridging nagłówek również nie działa ze sobą utworzoną klasę testową kiedy próbował zainicjować go w moim szybkim klasie.

Czy ktoś może mi pomóc rozwiązać ten problem?

+0

Witam, wiem, że to stanowisko jest zbyt stary, ale chcę tylko podzielić się moim doświadczeniem: miałem dokładnie takie same problem. Stworzyłem pliki (pliki SWIFT) przed skonfigurowaniem mostu. Po tym skonfigurowałem mostek (plik, ustawienia budynków itp.). I NIE, to nigdy nie działa.Po długim czasie i poszukiwaniach próbuję czegoś głupiego: usunąłem wszystkie pliki wewnątrz moich projektów, które wymagają zewnętrznej biblioteki i odtworzyłem je. Czy wierzysz mi, gdy mówię, że po tej głupiej operacji wszystkie rzeczy działają i mogę używać AFNetworking, że kilka minut laterów było "nierozwiązywalnych"? –

Odpowiedz

6

Znam ból ... Wpadłem na te same problemy, próbując uruchomić AFN na placu zabaw. Nie odniosłem sukcesu w tym przedsięwzięciu. Ale działało to w projekcie i nauczyłem się kilku rzeczy po drodze.

Najpierw skonfigurować pomostowego nagłówek w ustawieniach kompilacji mojego projektu (jak masz zrobić) i import AFN tak:

#import <AFNetworking/AFNetworking.h> 

drugie, ustawić build Pods projektu ustawienie „Definiuje Module” na Tak .

Potem wykonał zwykły build (Produkt -> Budowanie lub Option + B), aby zobaczyć, czy to wzięło. Następnie uruchomiłem Symulator.

+2

Po prostu FYI, to nie działa dla mnie. – Carlo

+2

Pamiętaj też o "zaimportowaniu" nowo utworzonych modułów do pliku .swift, tak jak to: import AFNetworking Uwaga, że ​​to _nie_ jest nagłówkiem mostkowania, ale plik SWIFT –

+1

To była część "importowana", która ostatecznie pracował dla mnie. Nie spodziewałem się tego, ponieważ AFN jest w nagłówku pomostowym ... –

0

Udało mi się go uruchomić przez link this.

Następnie w pliku nagłówkowym pomostowym zaimportowałem frameworki AFNetworking tak samo, jak w przypadku dowolnego frameworka. Ja również importowane BButton.h, który jest 3rd biblioteki strona nie jest to framework Pod ale coś umieszczony bezpośrednio pod moim projekcie

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

Następnie w pliku Swift, który wywołuje kod AFNetworking, musiałem importować AFNetworking ale nie 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) 
      } 
     ) 

    } 

} 

nadzieję, że pomoże

0

Poza wszystkim, co masz zrobić, Dodaj "use_frameworks!" Flaga do Podfile, aby wyglądać tak:

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

run „Pod zainstalować” polecenie ponownie