昨晚一电面,面试自己的。问我使用过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便可应付所有的事情。如果老大说要,咱就得用,别的不说,听话是必须的。。。除非那天,我是老大了。。。
原文:http://my.oschina.net/CgShare/blog/309278