应用程序中的图像未更新

Posted

技术标签:

【中文标题】应用程序中的图像未更新【英文标题】:Image is not updating in app 【发布时间】:2014-03-11 07:46:56 【问题描述】:

在我的应用中,我有一个页面,用户可以从中更新他的个人资料图片。在另一个页面中,我还显示了该个人资料图片。我正在使用用户 ID 来保存像 1.png 这样的个人资料图片,所以它的名称每次都相同。现在我正在使用 UIImageView+AFnetworking.h 并通过以下代码设置图像:

NSString *urlString=[ImageURL stringByAppendingPathComponent:[[NSUserDefaults standardUserDefaults] valueForKey:@"profile-picture"]];
NSURL *url=[[NSURL alloc]initWithString:urlString];
[imgProfile setImageWithURL:url placeholderImage:[UIImage imageNamed:@"No_image"]];

现在当我更新图片并转到另一个页面以查看更新的个人资料图片时,它显示的是旧图片。当我回到用户可以更新图片的页面时,还会显示旧图像。当我直接输入到浏览器的图像链接时,它会在服务器上显示更新后的图像。所以图像更新到服务器但不更新到应用程序。我认为这可能是因为每次 url 都是相同的,因此类不会从那里重新加载数据。我写吗?如果是,那么我应该怎么做才能解决这个错误

【问题讨论】:

【参考方案1】:

这只是一个疯狂的猜测,但也许您只是在页面第一次加载后才初始化个人资料图片。只要视图层次结构没有被卸载(如果您只是在视图控制器之间切换就不一定会发生这种情况),显示您的个人资料图片的 UIImageView 就没有理由重新加载其资源。

因此,您可能希望在 viewWillAppear 中检查您的图片是否已更改并在必要时重新加载,或者跳过此步骤并在每次页面可见时重新加载图片。

同样,这只是一个猜测 - 如果这不能解决问题,请告诉我们更多关于如何保存和加载图像的信息。

【讨论】:

no....我是正确的...该类具有存储请求缓存的方法...当我返回 nil 值时,如果图像更改,它现在每次都加载。跨度> 【参考方案2】:

我认为您的问题是您的请求缓存了旧图像。 当您设置新图像然后想从服务器获取它时,您会得到 旧缓存版本。

您可以尝试禁用此请求的缓存。

【讨论】:

以上是关于应用程序中的图像未更新的主要内容,如果未能解决你的问题,请参考以下文章

TableViewCell 中的解析值未更新

使用 Image Picker 后图像未显示在 ImageView 中

图像视图未在 NSThread 上更新

图像未正确加载

所选图像未显示在画布上

使用 xcode5 时图像未显示在 xib 和模拟器中