2016-07-08 7 views
2

Ich benutze Realm, um die JSON-Antwort vom Server auf iOS-Geräten zwischenzuspeichern, und wenn ich die App erneut öffne, sollte ich die zwischengespeicherten Daten anzeigen, bis der Server mir einen neuen JSON gibt Antwort auf Last.Cachen und Laden von Daten vom Server unter iOS

Ich weiß, es sollte die Anfrage mit dem Zeitstempel von der letzten Anfrage machen, um zu prüfen, ob es eine neue Antwort oder nicht gibt, aber dies ist noch nicht implementiert, der Server sendet mir JSON-Objekt jedes Mal, Ereignis, wenn es nicht ist geändert.

Nun, ich frage nach der besten Praxis, um die zwischengespeicherte Antwort und die Antwort vom Server auf der Clientseite zu behandeln.

Antwort

0

Wenn die JSON-Antwort über einen Schlüssel verfügt, der jedes Objekt identifiziert, empfiehlt es sich, Objekte mithilfe des Primärschlüssels zu aktualisieren.

Um den Primärschlüssel für Ihre Modelle zu definieren, überschreiben Sie die Klassenmethode primaryKey().

See, https://realm.io/docs/swift/latest/#primary-keys

Dann, wenn Sie die Antworten zwischenspeichern Sie add(update:) mit update Parameter true verwenden können. Dadurch können Sie nur die Antworten hinzufügen, die zum Realm hinzugefügt werden, unabhängig davon, ob sie existieren oder nicht. Sie können die Antworten jedes Mal herunterladen und dann einfach speichern. Realm sucht den vorhandenen Wert nach dem Schlüssel und aktualisiert ihn. Sie müssen sich nicht darum kümmern, ob der Wert existiert oder nicht.