![[swift]-AFNetworking网络封装,第1张 [swift]-AFNetworking网络封装,第1张](/aiimages/%5Bswift%5D%EF%BC%8DAFNetworking%E7%BD%91%E7%BB%9C%E5%B0%81%E8%A3%85.png)
1:定义一个网络工具类,如httpTools,NetworkTools等等
在NetworkTools.swift类中:
这里采用单例封装:
import AFNetworking// 枚举方式1enum RequestType { case GET case POST}// 枚举方式2enum RequestType1 : Int { case GET = 0 case POST = 1}// 枚举方式3enum RequestType2 : String { case GET = "GET" case POST = "POST"}class NetworkTools: AFhttpSessionManager { /// let是线程安全的 static let shareInstance : NetworkTools = { let tools = NetworkTools() tools.responseSerializer.acceptableContentTypes?.insert("text/HTML") return tools }()}// MARK: - 封装请求方法extension NetworkTools { func request(methodType : RequestType,urlString : String,parameters : [String : AnyObject],finished:(result : AnyObject?,error : NSError?) -> ()) { // 定义成功的回调闭包:使用一个常量来接收它 let successCallBack = { (task : NSURLSessionDataTask,result : AnyObject?) in finished(result: result,error: nil) } // 定义一个失败的回调闭包:使用一个常量来接收它 let failureCallBack = { (task : NSURLSessionDataTask?,error : NSError) in finished(result: nil,error: error) } // 发送网络请求 if methodType == .GET { GET(urlString,parameters: parameters,progress: nil,success: successCallBack,failure: failureCallBack) }else { POST(urlString,failure: failureCallBack) } }} 2:在vIEwController.swift中调用网络请求接口
class VIEwController: UIVIEwController { overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() //print(NetworkTools.shareInstance) //print(NetworkTools.shareInstance) } overrIDe func touchesBegan(touches: Set<UItouch>,withEvent event: UIEvent?) { /// 外面请求接口回调 NetworkTools.shareInstance.request(.POST,urlString: "http://httpbin.org/post",parameters: ["name" : "lishengbing","age" : 106]) { (result,error) in if error != nil { print(error) return } print(result) } } } 知识点:
1:swift中创建单例:
class NetworkTools: AFhttpSessionManager { /// let是线程安全的 static let shareInstance : NetworkTools = { let tools = NetworkTools() return tools }()} 2:swift中枚举的定义:
// 枚举方式1enum RequestType { case GET case POST}// 枚举方式2enum RequestType1 : Int { case GET = 0 case POST = 1}// 枚举方式3enum RequestType2 : String { case GET = "GET" case POST = "POST"} 意见反馈邮件:1415429879@qq.com 欢迎你们的阅读和赞赏、谢谢!
总结以上是内存溢出为你收集整理的[swift]-AFNetworking网络封装全部内容,希望文章能够帮你解决[swift]-AFNetworking网络封装所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)