IOS如何以编程方式防止下载的图像缓存

时间:2015-08-03 19:40:38

标签: ios swift caching alamofire

我正在开发社交网络应用,它会在每次打开个人资料视图时从服务器下载用户的个人资料照片。我还没有实现任何缓存。但似乎iOS会自动执行此操作。

问题在于,即使我可以看到图像已成功上传到服务器,用户更新个人资料照片的时间也可能需要一段时间,直到其他设备上的用户才能看到更新的照片。我注意到,如果在更新个人资料照片后重新安装应用程序,它将立即获得最新图像。所以我唯一的假设是,即使我的应用程序每次打开配置文件视图时都会发送请求从服务器下载图像,但该请求并不总是由iOS执行,而是iOS提供了缓存副本。

如果我是对的,请有人帮我解决这个问题。我是否需要手动执行缓存删除?

我正在使用Alamofire和Xcode 6.4

更新: 在我看来,向AppDelegate添加以下两行解决了这个问题。

    let sharedCache:NSURLCache  = NSURLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
    NSURLCache.setSharedURLCache(sharedCache)

1 个答案:

答案 0 :(得分:1)

Alamofire在后台使用NSURLCache,因此您只需致电:

NSURLCache.sharedURLCache().removeAllCachedResponses()

Swift 4.1的更新

URLCache.shared.removeAllCachedResponses()