本文介绍: Alamofire替换AF,我们现在是用Objectivec来写这个项目,而且我们是为宿主提供framework包,宿主如何调用Alamofire成了问题是否与宿主的AF冲突也是未知数。然后就是swif编写了,我这里swift文件里面写了方法外部OC调用。的swift文件,注意创建方式不是直接创建swift文件,而是像oc创建文件一样,语言选择swift语言创建完成之后xcdoe会自动弹出创建桥接文件弹框选择创建即可xcode自动帮你把相关配置配好。因AF停止维护更新,上级要求使用

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

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

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

然后要创建一个继承NSObjectswift文件,注意创建方式不是直接创建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里面设置相关配置

 

原文地址:https://blog.csdn.net/zhanghaibo369/article/details/129688239

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22496.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注