Używam NSURLRequest z CachePolicy, aby pobrać plik plist w NSData. Gdy zmieniam zawartość mojego plist, moja aplikacja ignoruje to i nadal prezentuje zawartość, która jest w pamięci podręcznej. Jak długo trwa pamięć podręczna? Jeśli tak, to czy istnieje opcja określenia czasu przechowywania danych w pamięci podręcznej? Czy istnieje sposób sprawdzenia NSURLRequest, czy dane na serwerze są nowsze niż pamięć podręczna ładowania danych z serwera lub jeśli jest równa pamięci podręcznej korzystać z pamięci podręcznej?Zasady dotyczące pamięci podręcznej NSURLRequest
5
A
Odpowiedz
2
Zobacz Controlling Response Caching w URLLoadingSystem docs.
Możesz dodać swoją datę w metodach delegata
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
Znacznie łatwiej z systemem buforowania jest ASIHTTPRequest. Polecam użyć tego systemu ładowania adresu URL.
Z Dokumenty jabłek:
Przykład listingu 6 zapobiega buforowanie https odpowiedzi. To dodaje również bieżącą datę do słownika informacji użytkownika dla odpowiedzi , które są buforowane.
-(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;
}
Dzięki. Ustawiłem teraz na zero. Ale jak sprawić, aby pamięć podręczna pozostała przez pewien czas lub sprawdzić, czy dostępne są nowsze dane z serwera? – halloway4b
zaktualizowałem moją odpowiedź –
iOS 6.1 SDK dokumentacja stwierdza co następuje: połączenia: willCacheResponse: Wysłane przed połączenie przechowuje w pamięci podręcznej odpowiedź w pamięci podręcznej, aby dać pełnomocnikowi możliwość jej zmiany. (wymagane) (Dostępne w systemie iOS 2.0 do iOS 4.3.) – cynistersix