iOS在SDWebImage中为url请求设置超时

时间:2013-04-26 11:09:08

标签: iphone ios sdwebimage

我正在使用SDWebImage库在我的iOS应用程序中缓存图像。现在当从服务器加载图像时,我在imageview上显示了一个活动指示器。我正在使用以下代码

__block UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
  activityIndicator.center = self.serviceImageView.center;
  activityIndicator.hidesWhenStopped = YES;
  [activityIndicator startAnimating];
  [self.serviceImageView addSubview:activityIndicator];
  [self.serviceImageView setImageWithURL:[NSURL URLWithString:[self.service valueForKey:@"image"]] placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
    [activityIndicator removeFromSuperview];
  }];

一般都很好。但对于某些图像,它没有加载图像,所以它永远不会完成块和&活动指标无限旋转。 那么有没有办法设置超时,以便在一定时间后它给我一个错误或类似的东西,所以我可以停止活动指示器。

有点睿智。请帮忙。

1 个答案:

答案 0 :(得分:0)

您应该检查网址是否有效,因为当您将nil传递给setImageWithURL时,将不会调用完成区块。

NSURL* url = [NSURL URLWithString:[self.service valueForKey:@"image"]];

if (url)
  [self.serviceImageView setImageWithURL:url placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
    [activityIndicator removeFromSuperview];
  }];
I