Swift版的网络请求封装

Swift版的网络请求封装,第1张

概述最近开始学swift,真的是欲罢不能啊。感觉比oc写起来顺手多了。 呐,今天呢,和大家分享一下swift版的网络请求库Alamofire,相当于oc里的AFNetworking,用起来不要太爽哦!!! 1.还是和往常一样,cocoapods导入第三方库Alamofire 2.建一个管理类,继承于NSObject 3.创建单例: private let NetRequestShareInstance 最近开始学swift,真的是欲罢不能啊。感觉比oc写起来顺手多了。

呐,今天呢,和大家分享一下swift版的网络请求库Alamofire,相当于oc里的AFNetworking,用起来不要太爽哦!!!

1.还是和往常一样,cocoapods导入第三方库Alamofire

2.建一个管理类,继承于NSObject

3.创建单例:

private let NetRequestShareInstance = NetRequest()class NetRequest: NSObject {    class var sharedInstance : NetRequest {        return NetRequestShareInstance    }}

PS:关于swift单例的写法有好几种,网上大神早已贴出来了,我这只是其中的一种。

4.下面是请求的具体实现,在这里我把POST和GET分开来写了:

这是POST:

func postRequest(urlString: String,params : [String : Any],finished : @escaPing (_ response : [String : AnyObject]?,_ error: NSError?)->()) {        Alamofire.request(urlString,method: .post,parameters: params)            .responseJsON { (response) in                if response.result.isSuccess{                    finished(response.result.value as? [String : AnyObject],nil)                }else{                    finished(nil,response.result.error as NSError?)                }        }    }

这是GET:

func getRequest(urlString: String,method: .get,parameters: params)            .responseJsON { (response) in                if response.result.isSuccess{                   finished(response.result.value as? [String : AnyObject],response.result.error as NSError?)                }        }    }

总结一下,咳咳,其实写下来感觉和OC没多大区别,唯一有区别的地方,就是oc中的block在这里用闭包的形式代替了,其他的倒没什么太大的区别!

另外,其实在swift中也可以用oc写的一些第三方库,无非就是建一个桥文件,在里面导入一下头文件而已,但是既然大神们辛辛苦苦的写好了swift版本,我觉得还是不要去绕道oc了,各位看官,您觉得呢?

欢迎大家随时指正!共同学习,共同进步! 总结

以上是内存溢出为你收集整理的Swift版的网络请求封装全部内容,希望文章能够帮你解决Swift版的网络请求封装所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存