UIWebViewがリクエストをロードするとき、画像を含む通常の方法でキャッシュします。カメラロールに保存する画像を選んでいただきたいと思います。NSURLCacheからイメージを取得する方法はありますか?
この時点で、ユーザーがUIWebView内でタップしたイメージのURLを検出できます。私の無知な答えは、NSURLConnectionで画像をダウンロードすることですが、画像が既にダウンロードされていておそらく既にキャッシュに保存されているので間違っていると感じます。画像がすでにキャッシュされているかどうかを確認し、画像を2回ダウンロードする代わりに取得する方法はありますか?
私はそうのようなNSCachedURLResponseを取得しようとしました:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Collage_of_Six_Cats-02.jpg/250px-Collage_of_Six_Cats-02.jpg"]];
NSCachedURLResponse *response = [[NSURLCache sharedURLCache] cachedResponseForRequest:request];
しかし、「レスポンス」は常にnilで、ちょうどそれがキャッシュされない暗示していることでしょうか?
編集:
要求で使用した:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
は、それが有効な応答を返さないし。しかし、リクエストで同じURLを使用すると、自分自身を作成しても、それは再びnilを返します。私は混乱します。
問題の原因はわかりませんが、SDUrlCache(https://github.com/rs/SDURLCache)というライブラリを使って考慮しています。おそらくあなたのバグは、iOSがインメモリキャッシュだけを使用しているという事実と関連しているかもしれません... – Piotr
@これに関する更新は何ですか? – aherlambang