5

AFNetworkingで、セッションを超えてイメージをディスクにキャッシュすることは可能ですか? たとえば、1 週間または 1 か月間です。私のプロジェクトではSDWebImageAFNetworkingを使用しましたが、数日前に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];

しかし、セッションよりも長く画像をキャッシュすることはできません。(私の英語でごめんなさい)

4

1 に答える 1