Swift版的网络请求封装
2017-01-13 09:37
507 查看
最近开始学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, params : [String : Any], finished : @escaping (_ response : [String : AnyObject]?,_ error: NSError?)->()) { Alamofire.request(urlString, method: .get, 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?) } } }
总结一下,咳咳,其实写下来感觉和OC没多大区别,唯一有区别的地方,就是oc中的block在这里用闭包的形式代替了,其他的倒没什么太大的区别!
另外,其实在swift中也可以用oc写的一些第三方库,无非就是建一个桥文件,在里面导入一下头文件而已,但是既然大神们辛辛苦苦的写好了swift版本,我觉得还是不要去绕道oc了,各位看官,您觉得呢?
欢迎大家随时指正!共同学习,共同进步!
相关文章推荐
- Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】
- IOS 开发 AFNetworking 网络工具-网络请求的三次封装 Swift版
- iOS网络请求工具oc版,swift版基于AFNetworking的简单封装
- Swift 3.0 【Swift 3.0 环境下使用 AFNetworking 封装网络请求业务类】
- swift 面向协议的网络请求封装
- swift ——~——~第三方网络请求封装
- Swift之网络请求框架封装
- swift项目第十天:网络请求工具类的封装
- [绍棠_Swift] Swift3.0中的Alamofire网络请求的封装
- swift网络请求封装
- Swift-利用AFN封装网络请求
- iOS网络请求工具oc版,swift版基于AFNetworking的简单封装
- swift 动手写网络请求封装(仿照了一个大神的)不用导入第三方
- iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
- Swift网络请求于数据解析简单封装
- Swift利用AFN实现封装网络请求详解
- 封装 block 请求网络数据
- iOS开发 封装网络请求 ——实例
- 封装 网络请求 (可以实现多个界面复用)
- 封装好的的 get 和 post网络请求