2017-12-30 19 views
0

Ich baue ein Dokument-ähnliches Modell mit Realm für Swift. Mein Schema folgt grob:Benachrichtigung über alle untergeordneten Änderungen erhalten

Document 
| 
+- root: Group 
    | 
    +- children: [Node] 
     +- Text: Node 
     +- Image: Node 
     +- Group: Node 

Zum Beispiel:

Document 
| 
+- root 
    | 
    +- text 
    | 
    +- group 
    | | 
    | +- image 
    | | 
    | +- text 
    | 
    +- text 

Jedes Mal, jeden beliebigen tief verschachtelter Kinder Änderungen Ich möchte benachrichtigt werden, die genau Objekt geändert hat, so kann ich die Ansicht Baum beschneiden darstellt diesen Knoten und neu zeichnen es mit den neuesten Daten

Es scheint wie Beobachtung Änderungen an einem gegebenen RLMObject benachrichtigt nur über sofortige Änderung der Eigenschaften, während die Beobachtung aller Änderungen an RLMRealm nicht re Port, was sich tatsächlich geändert hat.

Gibt es eine API, die ich vermisse? Vielen Dank!

Antwort

1

Zusätzlich zu RLMObject und RLMRealm können Sie auch Änderungen an Sammlungen beobachten. Fügen Sie der Auflistungseigenschaft Document.root.children einen Benachrichtigungsblock hinzu. Sie können auch RLMObjects vom Typ Node abrufen und abfragen und dem RLMResults-Objekt einen Benachrichtigungsblock hinzufügen.

Weitere Informationen finden Sie unter https://realm.io/docs/objc/latest#collection-notifications.

Eine Einschränkung besteht darin, dass Sie nicht wissen, welche Eigenschaft innerhalb des Objekts die Benachrichtigung ausgelöst hat, nur welches Objekt sich ändert. Es gibt ein offenes GitHub Problem zu diesem Thema: https://github.com/realm/realm-cocoa/issues/3485

+0

Danke, es scheint, dass Realm wird nicht für mich arbeiten, weil es eine Beschränkung von 16 Stufen Tiefe nach https://twitter.com/Adam_Fish/status/947095823095123968 hat –

Verwandte Themen