ASINetworkQueue使用cancelAllOperations方法来取消下载时使用的注意点
2013-01-18 15:11
363 查看
在 ASIHTTPRequest V1.7前提下
正确使用:imgDataDownLoadQueue = [[ASINetworkQueue alloc] init];
[imgDataDownLoadQueue setShouldCancelAllRequestsOnFailure:NO];
[imgDataDownLoadQueue setDelegate:self];
[imgDataDownLoadQueue setRequestDidFailSelector:@selector(imgDataRequestFail:)];
[imgDataDownLoadQueue setRequestDidFinishSelector:@selector(imgDataRequestFinish:)];
[imgDataDownLoadQueue setQueueDidFinishSelector:@selector(imgDataQueueDidFinish:)];
for(int i=0; i<[imgDatasToLoadArray count]; i++)
{
ASIHTTPRequest* imgRq = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:[[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"imgurl"]]];
NSString* value[2];
NSString* key[2];
value[0] = [[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"imgtime"];
value[1] = [[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"index"];
key[0] = @"imgtime";
key[1] = @"index";
imgRq.userInfo = [NSDictionary dictionaryWithObjects:value forKeys:key count:2];
[imgDataDownLoadQueue addOperation:imgRq];
}
[imgDataDownLoadQueue go];
=======
这样在dealloc中取消下载
[imgDataDownLoadQueue setDelegate:nil];
[imgDataDownLoadQueue cancelAllOperations];
[imgDataDownLoadQueue release];
imgDataDownLoadQueue = nil;
不会导致crash.
#######################################################3
如果按这种方法使用:
imgDataDownLoadQueue = [[ASINetworkQueue alloc] init];
[imgDataDownLoadQueue setShouldCancelAllRequestsOnFailure:NO];
[imgDataDownLoadQueue setDelegate:self];
for(int i=0; i<[imgDatasToLoadArray count]; i++)
{
ASIHTTPRequest* imgRq = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:[[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"imgurl"]]];
NSString* value[2];
NSString* key[2];
value[0] = [[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"imgtime"];
value[1] = [[imgDatasToLoadArray objectAtIndex:i] objectForKey:@"index"];
key[0] = @"imgtime";
key[1] = @"index";
imgRq.userInfo = [NSDictionary dictionaryWithObjects:value forKeys:key count:2];
[imgRq setRequestDidFailSelector:@selector(imgDataRequestFail:)];
[imgRq setRequestDidFinishSelector:@selector(imgDataRequestFinish:)];
[imgDataDownLoadQueue addOperation:imgRq];
}
[imgDataDownLoadQueue go];
在dealloc中
[imgDataDownLoadQueue setDelegate:nil];
[imgDataDownLoadQueue cancelAllOperations];
[imgDataDownLoadQueue release];
imgDataDownLoadQueue = nil;
将会导致ASIHttpRequist的Crash.
相关文章推荐
- ASINetworkQueue使用cancelAllOperations方法来取消下载时使用的注意点
- ASINetworkQueue使用cancelAllOperations方法来取消下载时使用的注意点 在 ASIHTTPRequest V1.7前提下 正确使用: imgDataDownLo
- ASINetworkQueue使用cancelAllOperations方法来取消下载时使用的注意点
- 如何使用ASINetWorkQueue下载实现
- ASINetworkQueue异步下载队列
- ASIHTTPRequest和ASINetworkQueue实现队列下载并查看结果
- ASIHTTPRequest和ASINetworkQueue实现队列下载并查看结果
- ASINetworkQueue 队列下载
- ASINetworkQueue 队列下载
- ASIHTTPRequest和ASINetworkQueue实现队列下载并查看结果
- ASIHTTPRequest和ASINetworkQueue实现队列下载
- iOS 如何取消一个request请求,在ASINetworkQueue中
- C#中使用Random方法时需要注意的问题
- C#下使用GDAL库 下载和引用方法
- Afinal加载网络图片及下载文件使用方法
- ConcurrentLinkedQueue使用方法
- 使用com.jayway.jsonpath.JsonPath包进行JSON的快速解析、设置值需要注意的性能提升方法
- 使用ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法
- 使用ASIHTTPRequest xcode编译提示找不到"libxml/HTMLparser.h"解决方法
- Delphi 模式窗体返回值ModalResult的使用方法及注意事项