Richtigen Weg die Zwischenspeicherung von Daten auf dem iPhone/iPad
Was ist der richtige Weg, um die cache-Datei und/oder string-Daten auf ios?
Ist CoreData nützlich für diese, oder gibt es eine bessere wat, dies zu tun?
Was ist die beste Methode, um cache für eine Leistung und was für die Zwischenspeicherung von für die Persistenz für jede Menge Daten?
Ich kann nicht scheinen, um herauszufinden, jede nette Apple-docs über dieses Thema.
- Welche Art von caching willst du? Im Arbeitsspeicher oder auf der Festplatte Zwischenspeichern? Und was ist Ihr Ziel der Bereitstellung?
- und welche Art von Daten sind, die Sie Zwischenspeichern? Bilder? App-Zustand? Text?
- Bilder, die nicht benötigt werden, zwischengespeichert werden, ausdrücklich, alles andere ist nicht anders.
- Wie viel Daten sind, die Sie Zwischenspeichern? Sind Sie Zwischenspeichern aus performance-Gründen oder Persistenz Gründen?
- *gepostet ein edit
- Nicht wahr. Es ist wichtig zu wissen, das Volumen der Daten, bevor Sie in der Lage zu empfehlen, eine caching-Strategie. Ein paar Zeilen text ist sehr unterschiedlich zu hundert Bild-Dateien.
- Ich bin Zwischenspeicherung des Inhalts einer Datei, oder einem string.
- Wieder einmal brauchen Sie nicht, um cache hundert Bild-Dateien. UIKit bedeutet es für Sie, wenn Sie wirklich wollen, das Rad neu zu erfinden. Implementiert habe ich mein eigenes Bild-Cache-Einrichtungen(btw mit
NSCache
), die benchmarks etwas besser als+imageNamed:
. Ich habe einzigartige situation, wenn ich Hunderte von winzigen Bildern an. Die wast Mehrheit der Entwickler es wäre übertrieben und Zeitverschwendung. Als Einheit Persistenz, es ist ein komplett anderes Thema. - Abgesehen von den oben genannten. Man bräuchte irgendeine Art von mapping-Daten-Struktur(lasst uns nicht diskutieren, array+index Ansatz hier). Würden Sie dem Zustimmen? Wenn Sie eine bessere Lösung haben, bitte teilen.
- Wenn wir davon ausgehen, dass caching bedeutet "im Speicher", dann Stimme ich Ihnen zu. Aber es ist nicht die einzige Verwendung des Wortes cache. Ich könnte sagen, dass ich cache die Ergebnisse aus einem web service, und die Ergebnisse sind persistent, zwischen Starts. Das würde bedeuten, eine andere Struktur als, sagen wir, eine text-Datei. Vor allem, wenn es mehr Daten gibt, als Erinnerung.
- btw
NSCache
macht einen guten job der Umgang mitNSDiscardableContent
Protokoll-Objekte, wenn es ist eine situation, in der "Mehr Daten als Speicher".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lieber
NSCache
docs hier:http://developer.apple.com/library/ios/#documentation/cocoa/reference/NSCache_Class/Reference/Reference.html
NSCache
ist eine sehr einfache in-memory-cache. Es behandelt nicht nur das caching für einen bestimmten Zeitraum oder löschen des cache, wenn es in-app-memory-Warnungen. Darüber hinaus, da es eine in-memory-cache, der cache verschwindet, wenn die app geschlossen ist oder im hintergrund.NSCache
kann definitiv ein nützliches tool, aber wirklich alle es ist einNSDictionary
können, entfernen Sie die zwischengespeicherte Elemente, wenn der Arbeitsspeicher, der von anderen Anwendungen erkannt wird.Gibt es viele verschiedene Lösungen zu diesem problem und es gibt keine "richtige" Art und Weise, es zu tun. Ein paar beliebte Optionen sind:
Core-Daten - apples framework für Persistenz. Sehr performant, aber schwieriger.
SQLite - Schnell und flexibel, aber die blanken Knochen.
Plists - im Grunde schreiben einer Datei auf der Festplatte, die Sie gelesen haben, und schreiben Sie Sie manuell.
NSUserDefaults - Das leichteste Gewicht "Schlüssel-Wert" - option.
Ich möchte Sie ermutigen, Lesen Sie auf alle vier und sehen, welche am besten für Sie arbeitet.