AFNetworkingで、セッションを超えてイメージをディスクにキャッシュすることは可能ですか? たとえば、1 週間または 1 か月間です。私のプロジェクトではSDWebImageとAFNetworkingを使用しましたが、数日前にAFNetworking がSDWebImageと同じ機能を持っていることがわかったので、 SDWebImage を削除し、イメージをディスクに保存するコードを書きました:
イメージビュー用
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[imageView setImageWithURLRequest:imageRequest placeholderImage:placeholderImage success:nil failure:nil];
画像をダウンロードして今後使用する
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[[AFImageDownloader defaultInstance] downloadImageForURLRequest:imageRequest success:nil failure:nil];
ダウンロードした画像を取得する
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
UIImage *image = [[AFImageDownloader defaultInstance].imageCache imageforRequest:imageRequest withAdditionalIdentifier:nil];
しかし、これはすべてセッションごとにのみ機能します。すべての画像を読み込んだ後、インターネットをオフにしてアプリを再起動すると、キャッシュに画像がありません。
また、私はそのようなコードを追加しようとしますAppDelegate
:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:2 * 1024 * 1024
diskCapacity:100 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
しかし、セッションよりも長く画像をキャッシュすることはできません。(私の英語でごめんなさい)