调试环境:
ASIHTTPRequest版本1.8.1-61 2011-9-19修复版
Xcode版本4.2.1
iOS5.0
Mac OS X10.7.1
在此代码仅仅捣鼓异步的初步处理
1、需要实现协议接口
ASIHTTPRequestDelegate
主要requestFailed,requestFinished之类的接口
2、调用的时候,建议启动异步request的对象和异步处理的对象分开定义
下面我的代码是启动异步和异步处理定义在一起
代码:
@interface AsynBaseDeal : NSObject<ASIHTTPRequestDelegate>
- (void)LoadImage:(NSString *)strUrl;
@end
@implementation AsynBaseDeal
- (id)init
{
self = [super init];
if (self)
{
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
- (void)LoadImage:(NSString *)strUrl
{
if (strUrl)
{
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:strUrl]];
[request setDelegate:self];
[request startAsynchronous];
}
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSLog(@"error :%@" ,[request error]);
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSLog(@"finish :%@ ,%d" ,[request responseData] ,request.responseEncoding);
}
@end
在使用中,我把AsynBaseDeal对象定义为UIApplication层面的成员变量来用的,这样避免了在异步处理结束前就释放了对应的处理对象