2014-10-13 16 views
6

Tôi đang gặp sự cố khi khởi tạo AFHTTPSessionManager trong lớp học nhanh chóng của mình. Tôi đã thêm AFNetworking sử dụng nhóm trong dự án của tôi. Nó cho thấy việc sử dụng sai loại không khai báo. Nhưng khi tôi nhấn CMD + Click vào AFHTTPSessionManager nó sẽ đưa tôi đến đúng lớp.Vấn đề bắc cầu trong khi sử dụng AFNetworking với Pod trong Dự án Swift

This is my bridging header class

Tôi đã thêm cầu nối header và nhập khẩu đẳng AFNetworking.h trong đó. Tôi đã cố gắng khắc phục vấn đề này bằng cách thêm tiêu đề bắc cầu theo nhiều cách. 1- Tôi đã tự tạo lớp tiêu đề cầu nối bằng cách tạo tệp tiêu đề mới 2- Tôi đã tạo lớp thử nghiệm c mục tiêu trong dự án nhanh và thêm tiêu đề cầu nối khi yêu cầu thêm tiêu đề bắc cầu trong dự án.

This is how I set build settings

This is how I used AFNetworking in my Swift class

Bridging tiêu đề cũng không làm việc với bản thân mình lớp thử nghiệm tạo ra khi tôi đã cố gắng để khởi nó trong lớp nhanh chóng của tôi.

Có ai có thể giúp tôi phân loại vấn đề này không?

+0

Hi, tôi biết bài này là quá cũ nhưng tôi muốn chỉ chia sẻ kinh nghiệm của tôi: Tôi đã hoàn toàn giống nhau vấn đề. Tôi đã tạo các tệp (các tệp nhanh) trước khi định cấu hình cây cầu. Sau đó, tôi đã cấu hình cầu nối (tệp, cài đặt tòa nhà, v.v.). Và KHÔNG, nó không bao giờ hoạt động.Sau một thời gian dài và tìm kiếm, tôi thử một thứ gì đó ngu ngốc: Tôi đã xóa tất cả các tệp bên trong các dự án cần thư viện bên ngoài và tôi đã tạo lại các tệp này. Bạn có tin tôi khi tôi nói rằng sau khi hoạt động ngu ngốc này tất cả mọi thứ đang làm việc và tôi có thể sử dụng AFNetworking rằng vài phút laters là "unresolvable"? –

Trả lời

6

Tôi biết nỗi đau ... Tôi đã gặp phải các vấn đề tương tự khi cố gắng để AFN hoạt động trong Sân chơi. Tôi đã không thành công trong nỗ lực đó. Nhưng nó đã làm việc trong dự án và tôi đã học được một vài điều trên đường đi.

Trước tiên, tôi cấu hình phần đầu cầu nối trong môi trường xây dựng dự án của tôi (như bạn đã làm) và nhập khẩu AFN như thế này:

#import <AFNetworking/AFNetworking.h> 

Thứ hai, tôi đặt xây dựng Dự án Pods thiết lập "Định nghĩa Mô-đun" Yes .

Sau đó, tôi thực hiện một xây dựng đồng bằng (sản phẩm -> Xây dựng hoặc Option + B) để xem nếu nó mất. Sau đó, tôi khởi chạy Trình mô phỏng.

+2

Chỉ cần thông tin, điều này không hiệu quả đối với tôi. – Carlo

+2

Ngoài ra, đừng quên "nhập" các mô-đun mới được tạo trong tệp .swift của bạn, như sau: nhập AFNetworking Note, đây là _not_ tiêu đề bắc cầu, nhưng tệp nhanh –

+1

Đó là phần "nhập" cuối cùng đã làm cho tôi. Tôi không ngờ rằng vì AFN nằm trong tiêu đề cầu nối ... –

0

Tôi có thể làm cho nó hoạt động theo liên kết this.

Sau đó, trong tệp tiêu đề chuyển tiếp, tôi đã nhập khung AFNetworking như tôi làm với bất kỳ khung công tác nào. Tôi cũng nhập khẩu BButton.h, mà là một thư viện của bên thứ 3 mà không phải là một khuôn khổ pod nhưng điều mà tôi đặt trực tiếp vào dự án của tôi

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

Sau đó trong file Swift mà các cuộc gọi mã AFNetworking, tôi phải nhập khẩu AFNetworking nhưng không 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) 
      } 
     ) 

    } 

} 

Hy vọng rằng sẽ giúp

0

Bên cạnh tất cả những gì bạn đã làm, Add "use_frameworks!" cờ để Podfile của bạn, trông như thế này:

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

chạy các "pod cài đặt" lệnh một lần nữa

Các vấn đề liên quan