在Swift项目中使用带有Pod的AFNetworking时的桥接问题

时间:2014-10-13 08:22:51

标签: objective-c swift afnetworking cocoapods afnetworking-2

我在swift类中初始化AFHTTPSessionManager时遇到问题。我在项目中使用pod添加了AFNetworking。它显示未声明类型的错误使用。但是当我按下CMD +点击AFHTTPSessionManager时,它会把我带到正确的班级。

This is my bridging header class

我在其中添加了桥接头和导入的AFNetworking.h类。我试图通过多种方式添加桥接头来解决此问题。 1-我通过创建新的头文件自己创建了桥接头类 2-我在swift项目中创建了目标c测试类,并在它要求在项目中添加桥接头时添加了桥接头。

This is how I set build settings

This is how I used AFNetworking in my Swift class

当我尝试在我的swift类中初始化时,桥接标题也不能与我自己创建的测试类一起使用。

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:6)

我知道痛苦......我遇到了同样的问题,试图让AFN在游乐场工作。我没有在这方面取得成功。但它确实在项目中起作用,我在此过程中学到了一些东西。

首先,我在Project的构建设置中配置桥接标头(正如您所做的那样)并导入AFN,如下所示:

#import <AFNetworking/AFNetworking.h>

其次,我设置了Pods项目构建设置&#34;定义模块&#34;是的。

然后我执行了一个简单的构建(Product - &gt; Build或Option + B)来查看它是否花了。然后我启动了模拟器。

答案 1 :(得分:0)

我能够通过this链接获得它。

然后在桥接头文件中,我使用任何框架导入AFNetworking框架。我还导入了BButton.h,这是一个第三方库,不是pod框架,而是我直接放入我的项目

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

然后在调用AFNetworking代码的Swift文件中,我必须导入AFNetworking而不是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)
            }
        )

    }

}

希望有所帮助

答案 2 :(得分:0)

除了你所做的一切,添加“use_frameworks!”标记到您的Podfile,如下所示:

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

再次运行“pod install”命令