2012-09-12 11 views
7

Sto effettuando una connessione a NSURL e devo creare una richiesta per ignorare tutta la politica cache. Ho visto esempi come:Politica cache iOS

NSURLRequest *request = [NSURLRequest requestWithURL:baseURL cachePolicy:0 timeoutInterval:10]; 
self.urlConnection = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease]; 

Posso chiedere a cosa si riferisce la politica della cache 0? Ho provato a cercare quello che rappresenta il numero ma non ricevo alcuna risposta di cui ho bisogno. Grazie! :)

risposta

6

si dovrebbe avere uno sguardo a NSURLRequestCachePolicy enum, qui 0 media è NSURLRequestUseProtocolCachePolicy, che significa NSURLRequest non caricare dati da server ogni volta.

enum 
{ 
    NSURLRequestUseProtocolCachePolicy = 0, 
    NSURLRequestReloadIgnoringLocalCacheData = 1, 
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4, 
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, 
    NSURLRequestReturnCacheDataElseLoad = 2, 
    NSURLRequestReturnCacheDataDontLoad = 3, 
    NSURLRequestReloadRevalidatingCacheData = 5 
}; 
typedef NSUInteger NSURLRequestCachePolicy 
+0

grazie per le informazioni dettagliate! – Annabel

+0

Penso che caricherà i dati dal server se la cache è scaduta, o riconvalida il rilevamento delle modifiche ai dati – huync

2

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html

NSURLRequestUseProtocolCachePolicy = 0

Specifica che la logica cache definita nel protocollo di attuazione , se presente, viene utilizzata per una particolare richiesta di carico URL. Questa è la politica predefinita per le richieste di caricamento URL.

Esempio: se si utilizza HTTP, i campi dell'intestazione HTTP verranno valutati per decidere se utilizzare o meno la memorizzazione nella cache.

la politica giusta nel tuo caso è:

NSURLRequestReloadIgnoringLocalCacheData

+0

grazie per l'aiuto! – Annabel

1

Secondo questo articolo: http://blackpixel.com/blog/2012/05/caching-and-nsurlconnection.html, se si utilizza NSURLRequestUseProtocolCachePolicy e il server non restituisce né scadenza o max-age, l'intervallo di tempo predefinito di cache è di 6 - 24 ore. Quindi, stai attento a questa condizione. È preferibile impostare l'età massima o la scadenza quando si utilizza NSURLRequestUseProtocolCachePolicy.

Problemi correlati