【问题标题】:UIImageView+AFNetworking is not retrieving latest image from serverUIImageView+AFNetworking 未从服务器检索最新图像
【发布时间】:2014-06-11 05:35:35
【问题描述】:

我在图像缓存中遇到问题。我无法获取新图像。因为我使用相同的 URL 来获取图像。但是服务器端我的管理员更改了该 URL 位置上的图像。

我知道有一种方法可以根据状态码或缓存控制器检查它是新的还是旧的。

我的问题是,有什么方法可以在不下载内容的情况下获取 URL 的状态代码?

Step1 : 从在线 url 加载图片成功。使用以下方法

(void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage; This is successfully display on my image view and cached. Step 2: I changed image from server. Url is same. So I can not able to get latest image. I am always getting old image.

问题:如何使用具有相同 url 的 UIImageView+AFNetworking 类别从服务器获取最新图像?

注意:我已成功从服务器端获取状态码(304 或 200)。那我该怎么处理呢?

【问题讨论】:

  • 你的问题解决了吗?现在我面临同样的问题?你有什么解决办法吗?
  • 不,哥们,我没有得到任何解决方案。
  • 我找到了解决方案...我修改了框架...
  • 你能告诉我怎么做吗?

标签: ios afnetworking-2


【解决方案1】:

您可以尝试重置类别的缓存吗?但它会删除缓存中的所有对象,因此您可以决定是否要始终获取所有新图像。试试这个,

  [yourImageView setSharedImageCache:nil];

如果您想检查状态代码以及您必须在自己的 UIImageView 类别上工作或分解现有类别的所有内容,请查看此方法以获取更多详细信息。

- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest
              placeholderImage:(UIImage *)placeholderImage
                       success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success
                       failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure

【讨论】:

  • 谢谢,首先“setSharedImageCache”不是这种情况,因为我不知道服务器端的图像何时发生了变化,所以如果我们使用它,这将每次只从在线检索图像。第二个,我们可以使用上面的方法获取状态码,但这是否会在不下载内容的情况下给出状态码?
  • 不,我不认为这种方法会在下载之前给你状态码。
  • 那么我们该如何处理这种情况?有没有其他方法?
  • @HelpMeToHelpYou:你有什么解决办法吗?
【解决方案2】:

尝试通过NSURLRequest 设置缓存策略,如下所示:

[_yourImageView setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@
    "YOUR URL"] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30.0] placeholderImage:placeholder success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
            [_yourImageView setImage:image];
        } failure:nil];

【讨论】:

  • 谢谢,但是如果我使用 cachePolicy 作为 NSURLRequestReloadIgnoringLocalCacheData,这将禁用整个缓存机制。它将每次从在线加载。但我的要求不同,我想要缓存,但是当服务器发生任何变化时,它应该能够找到变化,而不仅仅是它应该开始下载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 2015-11-17
  • 2012-11-25
  • 1970-01-01
相关资源
最近更新 更多