9

Cocoa アプリでWebViewキャッシュをクリア/フラッシュするにはどうすればよいですか?

特に、ローカル スタイルシートのキャッシュをクリアしたいと考えています。

私は無駄に次のことを試しました:

// Tried this before loadRequest
[[NSURLCache sharedURLCache] removeAllCachedResponses];

// Also tried this before and after loadRequest
[webView.mainFrame reloadFromOrigin];

を新しいものに置き換えてもWebView、キャッシュされたスタイルシートが引き続き使用されます。

4

2 に答える 2

10

他の提案された解決策は、ローカル スタイルシートでは機能しませんでした (ただし、リモート リソースでは機能するはずです)。

キャッシュポリシーを明示的に設定することにより、 resourceLoadDelegateを介して最終的にこれを解決することができました。

- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource {
    request = [NSURLRequest requestWithURL:[request URL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:[request timeoutInterval]];
    return request;
}

楽しいもの。

于 2012-08-22T13:04:46.683 に答える
0

NSURLCache Class Referenceを見てください。

- (id)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(NSString *)path 
//set memoryCapacity and diskCapacity to 0 bytes and diskPath to nil

NSURLCache *Cache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:Cache];
于 2012-08-22T12:25:56.170 に答える