NSData dataWithContentsOfURL-Cache

8

NSData + dataWithContentsOfURL hat standardmäßig eine Zwischenspeicherung? Hat jemand eine Art von Problemen mit dieser Methode experimentiert, was ist der effizienteste Weg, Daten aus dem Internet zu bekommen?

    
cesarnicola 23.08.2010, 15:12
quelle

5 Antworten

3

Die Dokumentation sagt nicht, dass es zwischengespeichert wird, also sollten wir davon ausgehen, dass sie kein Caching durchführen.

Welche Arten von Daten möchten Sie erhalten?

UIImage: Ja, ich denke du solltest NSData verwenden

Video: Sie sollten MPMoviePlayerController für das Streaming verwenden

Text: Ich denke, dass Sie normale NSUrlConnection tun können . Es hat auch asynchron, synchron und Caching

    
vodkhang 23.08.2010, 15:19
quelle
8

Verwenden Sie ASIHTTPRequest. Es ist eine HTTP-Client-Bibliothek eines Drittanbieters, die die Netzwerkinteraktion VIEL einfacher macht und sehr nette Cache-Funktionen hat.

UPDATE: Habe gerade einen Kommentar zu dieser Antwort bekommen, was eine gute Erinnerung ist, um zurück zu kommen und zu aktualisieren. Lot hat sich seit August '10 geändert. Vor allem: ASIHTTPRequest ist jetzt veraltet, und der Autor ermutigt die Leute, etwas anderes zu verwenden. AFNetworking scheint eine beliebte Wahl zu sein.

    
Dan Ray 23.08.2010 15:52
quelle
5

Am besten verwenden Sie NSURLConnection. Die NSURLRequest, die Sie angeben, kann so konfiguriert werden, dass das Caching wie gewünscht ausgeführt wird. Standardmäßig wird jedoch nur das Standard-Caching von HTTP-Ressourcen durchgeführt, die in ihrer Antwort die entsprechenden Header enthalten.

Das mache ich:

%Vor%

Stellen Sie sicher, dass Sie dies in eine NSOperationQueue legen, die nicht Ihre Hauptwarteschlange ist, oder laden Sie sie auf andere Weise aus dem Hauptthread. Verwenden Sie alternativ eine asynchrone Anforderung.

    
lhunath 26.07.2012 11:57
quelle
5

Es scheint so zu sein, dass die Standardrichtlinie bei iPhone5s das Zwischenspeichern (Entfernen von iPhone5 und früher) ist.

Sie können über den Parameter options die Cache-Policy für NSData bearbeiten. Wenn Sie beispielsweise den Cache vermeiden möchten, kann der folgende Ausschnitt verwendet werden:

%Vor%     
MichaelCMS 12.05.2014 09:42
quelle
-1

Wenn Sie nur Bild von einer URL herunterladen möchten, verwenden Sie keine Bibliotheken, nur ein einfacher dispatch_async-Aufruf sollte in Ordnung sein. so:

%Vor%     
James Wang 17.04.2013 23:22
quelle

Tags und Links