2012-08-13 38 views
0

我正在開發一個應用程序,用戶可以在其中上傳照片並進行編輯(例如,提供效果,剪裁,旋轉等)。對於上傳和下載,我使用AFNetworking框架。禁用AFNetworking中的特定圖像緩存

我的問題是:當我編輯照片時,我上傳新版本到文件服務器。在應用程序中,我正在調整AFImageCache以保存對新(已編輯)照片的引用。當我關閉並再次打開應用程序時,舊圖像被加載。

所以我的問題是:除了AFImageCache iPhone使用的是否有任何其他緩存?如果是這樣,我怎麼能清除緩存中的圖像,以便重新啓動應用程序時從服務器獲取新圖像?

回答

0

有一個在iPhone上緩存沒有內置,從而發生任何緩存可以是:

  1. 在服務器
  2. 在代碼的項目中這是

你可以嘗試單在調試器中逐步瀏覽,看看過時的圖像數據實際上從哪裏加載。

+0

我看到正在對我的照片進行網絡請求,但是當我瀏覽器中的網址時,我得到了新圖像。不知何故,我的請求沒有收到新的圖像。這可能嗎? 在代碼中,我使用的唯一緩存是AFNetworking附帶的緩存,但是在發出請求之前手動清除了緩存,以確保它不在代碼中。 – Devos50 2012-08-13 17:19:15

+0

服務器如何迴應您看到的請求?例如,它是一個304 HTTP代碼?如果單步執行網絡代碼,它實際上是否使用從服務器接收的數據? – JosephH 2012-08-13 17:49:06

+1

@JosephH:iPhone內置了緩存。它通過AFNetworking的基礎NSURLRequest類暴露出來。查看[initWithURL:cachePolicy:timeoutInterval:]的文檔(https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html# // apple_ref/occ/clm/NSURLRequest/requestWithURL:cachePolicy:timeoutInterval :)方法。 – Codo 2012-08-13 19:07:48

0

我從同樣的問題問題是編輯的圖像和以前的圖像的URL是相同的,URL被用作緩存鍵在UIImage的AFNetworking UIImage的類別

+ afnetworking.m去

- (void)setImageWithURL:(NSURL *)url 
     placeholderImage:(UIImage *)placeholderImage 
遭遇

,然後添加到它

request.cachePolicy=NSURLRequestReloadIgnoringCacheData;//my change for disabling 

您可以檢查此link

+0

https://github.com/Amar11s/ASImage提供標誌,重置高速緩存 – amar 2014-02-15 12:21:59

+0

不適用於我:( – evya 2015-09-19 07:29:03

+0

@evya afnetworking使emage URL鍵,並用它來保存圖像在object.Though UIImage + afnetworking.ma類仍然使用低級c api在內存中編寫對象並對其進行修改。您可以在相同方法附近調試代碼以禁用標誌的緩存 – amar 2015-09-19 07:50:10