如何用Objective-c调用Alamofire

因AF停止维护更新,上级要求使用第三方库Alamofire,替换AF,我们现在是用Objective-c来写这个项目,而且我们是为宿主提供framework包,宿主如何调用Alamofire成了问题,是否与宿主的AF冲突也是未知数。

后经过各种百度以及广州同事协助终于完成AF的替换并且不会与原有AF冲突!由于百度文章太多就不在此引入了!

首先pod Alamofire 最好指定版本 因为不同版本调用方法会有出入,当然最终指向都是一样的。这里使用的是5.6.4版本 直接使用AF.request方法即可。

然后要创建一个继承自NSObject的swift文件,注意创建方式不是直接创建swift文件,而是像oc创建类文件一样,语言选择swift语言

创建完成之后xcdoe会自动弹出创建桥接文件弹框,选择创建即可,xcode会自动帮你把相关配置配好。

然后就是swif编写了,我这里在swift文件里面写了方法供外部OC调用。OC调用swift方法 需要在swift方法前面加上@objc注解 方法如下(方便自己下次使用直接放代码了,图片时间长了容易丢失):

@objc public func ocCallMethod(_ url: String, _ parameter: [String: Any], _ header:[String: String],_ success:@escaping (Any) -> Void, failure:@escaping (Error) -> Void) {

        var headers = AF.sessionConfiguration.headers;        

        headers.add(name: "Content_Type", value: "application/json");

        headers.add(name: "apiFrom", value: header["ios"] ?? "");

        headers.add(name: "sdkVersion", value: header["sdkVersion"] ?? "");

        headers.add(name: "signature", value: header["signature"] ?? "");

        headers.add(name: "timestamp", value: header["timestamp"] ?? "");

        headers.add(name: "nonceStr", value: header["nonceStr"] ?? "");

        headers.add(name: "appKey", value: header["appKey"] ?? "e1");

        AF.request(url, method: .post, parameters: parameter, encoding: URLEncoding.default, headers: headers).responseData{(AFDataResponse ) in

            switch AFDataResponse.result {

                //处理方式一:

            case .success:

                let dict = try? JSONSerialization.jsonObject(with: AFDataResponse.data!, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: Any]

                success(dict ?? (Any).self)

                break   

            case .failure:

                failure(AFDataResponse.error!);

                break

            }            

        }

    }

 然后就是OC调用传参了这里就不多写了。

关于桥接文件,里面不需要做任何更改,在swift文件中引入Alamofire即可调用

如果你的xcdoe没有自动帮你创建桥接文件,也可以手动创建。命名规范“工程名-Bridging-Header.h”,然后在setting里面设置好相关配置

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值