ASINetworkQueue使用cancelAllOperations方法来取消下载时使用的注意点

在   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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值