2016-11-09 15 views
3

キャッシュビットをクリアしようとしましたが、アプリケーションのサイズが大幅に小さくなりません。キャッシュをクリアした後にイメージがディスクから削除されないAFNetworking

キャッシュされた画像のアプリサイズは約30MBと45MBです。

これは私がキャッシュをクリアしようとした方法です:アプリのサイズが小さくならなかった私のiPhone 6 iOS10で

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
[[AFImageDownloader defaultURLCache] removeAllCachedResponses]; 
AFAutoPurgingImageCache *imageCache = [AFImageDownloader defaultInstance].imageCache; 
[imageCache removeAllImages];    
  • 。シミュレータ上で
  • アプリファイル内のcom.alamofire.imagedownloader/fsCachedDataすべてのファイルが

残っていますこれは私がAFNetworking(3.1.0)を使用して画像をダウンロードする方法です:

#import "AFImageDownloader.h" 

[photoImageView setImageWithURLRequest:[NSURLRequest requestWithURL:thumb] placeholderImage:myCachedImage success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
       [self setPhotoImage:image]; 
      } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 
       [self setupPlaceholder]; 
      }]; 
+0

私はいつも、シミュレータで動作していないキャッシュ、実際のデバイスを試すことがわかりました。 –

答えて

1

参照は次のとおりです。

  1. AFAutoPurgingImageCache *imageCache = [AFImageDownloader defaultInstance].imageCache;imageCacheはメモリに保存されていますが、役に立たなくなります[imageCache removeAllImages];
  2. あなたはただ[[AFImageDownloader defaultURLCache] removeAllCachedResponses];をする必要があります。 AppleがURLCacheをクリアするために提供する唯一のAPIです。
  3. fsCachedDataは、removeAllCachedResponsesに電話すると削除されません。リンゴはディスクデータを消去する独自のメカニズムを持っているからです。たぶん、私が検索して7日ごとにディスクデータをクリアするだろうが、私は確信が持てない。
  4. 他の人たちがどのように使っているかは面白いと思います。fsCachedDataShould I clear the fsCachedData folder myself?
  5. 私はそれが助けてくれることを願っています。
1

Googleのアプリでも同じように表示されています。このhttp://blog.airsource.co.uk/2014/10/11/nsurlcache-ios8-broken/によると、AppleがiOS 8.1アップデートで修正したiOS 8バグです。

あなたの質問に答えてください:いいえ、自分でキャッシュを削除する必要はありません。アップルの修正によって実際に古いデータが消去されます。もし何らかの理由であなたが問題なく、あなた自身でそれを削除できるはずです。

私は、iOS 8.1が本当に問題を解決していることを確認しました。ただし、ユーザーは更新後に一度アプリを起動してキャッシュをクリアする必要があります。

+0

なぜあなたはiOS 8について話していますか?2014年のブログポストにリンクしていますか?私たちは今2016年であり、ほとんどの人がiOS 10を使っています。私は元のポスターと同じ問題を経験しましたが、これはiOS 8のバグ(iOS8.1で修正されました)と関係があるとは思えません。 – knutigro

0

このコードはAFNetworking 3.1のために働く:

 [[NSURLCache sharedURLCache] removeAllCachedResponses]; 

     AFImageDownloader *imageDownloader = [AFImageDownloader defaultInstance]; 
     NSURLCache *urlCache = imageDownloader.sessionManager.session.configuration.URLCache; 
     [urlCache removeAllCachedResponses]; 

     [imageDownloader.imageCache removeAllImages]; 
関連する問題