应用程序中的图像未更新
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】:我认为您的问题是您的请求缓存了旧图像。 当您设置新图像然后想从服务器获取它时,您会得到 旧缓存版本。
您可以尝试禁用此请求的缓存。
【讨论】:
以上是关于应用程序中的图像未更新的主要内容,如果未能解决你的问题,请参考以下文章