Hel euch allen! Mein Szenario ist, dass ich einen Bildschirm mit einem Feed habe und jedes Feedelement mit seinen Details in einem Realm gespeichert ist. Für jedes dieser Elemente sind die Eigenschaften offset und feedPostedAt definiert. Das Problem tritt auf, wenn ein Benutzer auf ein Element klickt und die Details des Elements heruntergeladen werden, um aktuelle Daten bereitzustellen. Das heruntergeladene Detail enthält jedoch keine Eigenschaften offset und feedPostedAt. Daher wird beim Aktualisieren des Realms ( realm.copyOrUpdate () ) dieses Elements das alte Objekt mit den Eigenschaften offset und feedPostedAt überschrieben.
Gibt es eine Möglichkeit, dass Realm nur Werte aktualisiert, die definiert sind, und Eigenschaften mit NULL-Werten unverändert lassen?
Im Moment befasse ich mich mit diesem Problem so, dass ich die offset- und feedPostedAt-Eigenschaft manuell zurücksetze, aber das ist weder schön noch effektiv.
Es könnte ein bisschen spät sein, aber das ist es, was ich benutze. Die Methode aktualisiert das Objekt base
mit den nicht standardmäßigen Eigenschaften von update
object. Dann wird die Methode Realm#insertOrUpdate
verwendet, um die Realm-Datenbank zu aktualisieren.
@PrimaryKey
annotierte Eigenschaft in der Reihenfolge Realm#insertOrUpdate
haben, um seine Aufgabe zu erledigen. Andernfalls erfordert die Methode ein wenig Tuning.