iOS 面试题之网络封装
昨晚一电面,面试自己的。问我使用过AFNetWorking吗?
这个东西,说实在的,我用的不太多,除非一种情况,那就是我套用三方,使用别人写的时候,才用。。。一般我都是自己封的,用自己的。。。所以,一开始没答上来。
就简单说一下,我自己封的网络请求类
// // NetWrokHandler.h // 封装网络请求 // // Created by 萨斯辈的呼唤 on 14-6-27. // Copyright (c) 2014年 萨斯辈的呼唤. All rights reserved. // #import <Foundation/Foundation.h> typedef void(^BLOCK)(id result); // 定义一个block对象 @interface NetWrokHandler : NSObject // block属性 要用copy修饰 @property (nonatomic, copy) BLOCK passValue; + (void)connectNetGETDataWithURLString:(NSString *)urlStr completion:(BLOCK)block; // 让视图控制器在 传入参数的同时 临时定义一个block块 - (void)getDataWithURLString:(NSString *)urlStr comlietion:(BLOCK)block; @end
// // NetWrokHandler.m // 封装网络请求 // // Created by 萨斯辈的呼唤 on 14-6-27. // Copyright (c) 2014年 萨斯辈的呼唤. All rights reserved. // #import "NetWrokHandler.h" @implementation NetWrokHandler - (void)getDataWithURLString:(NSString *)urlStr comlietion:(BLOCK)block { self.passValue = block; // 转换格式UTF8 NSString *str = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:str]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:30.0f]; [request setHTTPMethod:@"GET"]; // 异步请求 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if (nil != data) { id object = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; self.passValue(object); } }]; } + (void)connectNetGETDataWithURLString:(NSString *)urlStr completion:(BLOCK)block { NetWrokHandler *network = [[NetWrokHandler alloc] init]; [network getDataWithURLString:urlStr comlietion:block]; } @end
只是单纯的异步GET请求数据。
只是偶尔的项目中使用过AFNetWorking,例如,之前做的旅游类的app中使用三方PAImageView时,使用过一次。。。其实我感觉吧,需要用,你便用。
AFNetworking 作为一个已死的 LBS 项目中对 Apple 范例代码的延伸。
AFNetWorking 一般用作初始化一个URL,实例化一个操作队列,便于后续的多线程操作。
AFHTTPRequestOperation 一般为http请求数据,获取解析好的JSON数据。
AFImageRequestOperation 用来下载和处理图片。(AFHTTPRequestOperation的一个子类)
AFJSONRequestOperation 用来处理JSON数据。(AFHTTPRequestOperation的一个子类)
UIImageView+AFNetworking 异步加载图片
这些是我接触最多的也是用的最多的。虽然说,我用自己封装的网络类+SDWebImage便可应付所有的事情。如果老大说要,咱就得用,别的不说,听话是必须的。。。除非那天,我是老大了。。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。