首先怎么下载框架我这里就不说了,进入正题!
首先创建一个NewworkingTools文件
import AFNetworking//定义枚举类型enum RequestType : String { case GET = "GET" case POST = "POST"}class NetworkTools: AFhttpSessionManager { //单例 static let shareInstance :NetworkTools = { let tools = NetworkTools() //这是给JsON序列化加一个格式 tools.responseSerializer.acceptableContentTypes?.insert("text/HTML") return tools }()}// MARK:- 封装请求方法extension NetworkTools { func request(methodType : RequestType,urlString : String,parameters :[String : AnyObject],failure :(result : AnyObject?,error : NSError?) -> ()) { //判断是那种请求 GET if methodType == .GET{ GET(urlString,parameters: parameters,progress: nil,success: { (stak : NSURLSessionDataTask,result : AnyObject?) -> VoID in print(result) },failure: { (task :NSURLSessionDataTask?,error:NSError?) -> VoID in }) } else //POST { POST(urlString,result : AnyObject?) -> VoID in },failure: { (task : NSURLSessionDataTask?,error : NSError?) -> VoID in }) } }}}
现在可以在外面试着调用了
overrIDe func touchesBegan(touches: Set<UItouch>,withEvent event: UIEvent?) { NetworkTools.shareInstance.request(.GET,urlString: "http://httpbin.org/get",parameters: ["name":"MarkTang"]) { (result,error) -> () in } }
如果你没有改配置的话,会出现以下错误
Snip20160407_1.png
你需要需要以下info的配置,因为是可能是https
Snip20160407_3.png
再次运行,你会拿到类似于以下数据
Snip20160407_4.png
接下来在继续优化一下代码
// MARK:- 封装请求方法extension NetworkTools { func request(methodType : RequestType,error : NSError?) -> ()) { //1.定义成功回调的闭包 let successCallBack = { (stak : NSURLSessionDataTask,result : AnyObject?) -> VoID in //把闭包传出去 failure(result: result,error: nil) } //2.定义失败的回调闭包 let failureCallBack = { (stak : NSURLSessionDataTask?,error : NSError?) -> VoID in //把闭包传出去 failure(result: nil,error: error) } //3.判断是那种请求 GET 发送请求 if methodType == .GET{ GET(urlString,success: successCallBack,failure: failureCallBack) } else //POST { POST(urlString,failure: failureCallBack) } }}//在外面可以拿到返回的值 overrIDe func touchesBegan(touches: Set<UItouch>,error) -> () in if error != nil { print(error) return } print(result) } }再跑一下,可以返回参数,好了这就是最简单的封装了,下次再见,如果有疑问可以在下面回复,我看到会及时回复!
文/MarkTang(简书作者) 原文链接:http://www.jianshu.com/p/b922b7f24003 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 总结
以上是内存溢出为你收集整理的用Swift一步步教你封装--AFNetworking全部内容,希望文章能够帮你解决用Swift一步步教你封装--AFNetworking所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)