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

问题描述 投票:6回答:3

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

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

当我尝试在我的swift类中初始化它时,桥接头也无法与我自己创建的测试类一起工作。

任何人都可以帮我解决这个问题吗?

objective-c swift afnetworking cocoapods afnetworking-2
3个回答
6
投票

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

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

#import <AFNetworking/AFNetworking.h>

其次,我将Pods Project构建设置“Defines Module”设置为Yes。

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


0
投票

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

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

再次运行“pod install”命令


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)
            }
        )

    }

}

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.