Begonnen mit Realm als Speicher-Layer für meine App. Dies ist das Szenario, das ich versuche zu lösenRealm: Müssen wir jedes neu erstellte RLMObject schreiben
Szenario: Ich bekomme eine ganze Reihe von Daten vom Server. Ich konvertiere jedes Datenstück in ein RLMObject. Ich möchte am Ende nur in den persistenten Speicher "speichern". Dazwischen möchte ich, dass diese RLMObjects Punkte erzeugen, wenn ich eine Abfrage mache
Ich sehe keine Lösung dafür in Realm
. Es sieht so aus, als ob man jedes Objekt nach der Erstellung in die Realm-DB zurückschreibt. Die Dokumentation sagt auch, dass Schreibvorgänge teuer sind. Gibt es einen Weg?
Um den Overhead zu reduzieren, könnte ich die Liste der erstellten Objekte verwalten und alle in einer Transaktion schreiben. Sieht immer noch nach viel Arbeit aus. Soll es so verwendet werden?
Danke, ich versuche den Unterschied zwischen zwei folgenden Anweisungen zu verstehen 1. Ihre obige Aussage von "Crete Objekte als Standalone und fügen Sie sie in einer einzigen Transaktion" 2. Anweisung im Beispiel "Sharing Realm-Instanzen über Threads wird nicht unterstützt". Ich erstelle eine Instanz einer Klasse, die eine Unterklasse von RLMObject ist, um meine Daten zu speichern. Bedeutet Anweisung 2, dass ich einen dispath_async nicht starten kann, um einen Hintergrund-Thread zu erstellen, der diese Objekte in Realm schreibt? –
Nein, tut es nicht. Sie müssen nur eine neue 'RLMRealm'-Instanz erstellen, um auf einen anderen Thread zu schreiben. – Dmitry
Eigenständige Objekte können über Threads hinweg gemeinsam genutzt werden. Es sind nur Objekte, die einem Realm hinzugefügt wurden, die nicht geteilt werden können (da sich das Realm im anderen Thread in einem anderen Status befinden könnte). – ast