NSData で plist をダウンロードするために CachePolicy で NSURLRequest を使用しています。plist のコンテンツを変更すると、アプリはこれを無視し、キャッシュされたコンテンツを表示します。キャッシュはどのくらい保持されますか? もしそうなら、キャッシュデータがどれくらい持続するかを言うオプションはありますか? サーバー上のデータがサーバーからデータをロードするキャッシュよりも新しい場合、またはキャッシュと等しい場合はキャッシュを使用する場合に NSURLRequest をチェックインする方法はありますか?
質問する
3999 次
1 に答える
2
URLLoadingSystem docsの Controlling Response Caching をご覧ください。
デリゲート メソッドに独自の日付を追加できます
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
ASIHTTPRequestを使用すると、キャッシュ システムを使用する方がはるかに簡単です。この URL Loading System を使用することをお勧めします。
アップルのドキュメントから:
リスト 6 の例は、https 応答のキャッシュを防止します。また、キャッシュされた応答のユーザー情報ディクショナリに現在の日付を追加します。
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSCachedURLResponse *newCachedResponse = cachedResponse;
if ([[[[cachedResponse response] URL] scheme] isEqual:@"https"]) {
newCachedResponse = nil;
} else {
NSDictionary *newUserInfo;
newUserInfo = [NSDictionary dictionaryWithObject:[NSCalendarDate date]
forKey:@"Cached Date"];
newCachedResponse = [[[NSCachedURLResponse alloc]
initWithResponse:[cachedResponse response]
data:[cachedResponse data]
userInfo:newUserInfo
storagePolicy:[cachedResponse storagePolicy]]
autorelease];
}
return newCachedResponse;
}
于 2012-04-20T17:01:03.280 に答える