Ich versuche, die eingefügt/gelöschten Objekte nach einer Schreibtransaktion zu erfahren.Engmaschiges Benachrichtigungen alt/neu RLMResults
Mit dem feinkörnigen Benachrichtigungsblock kann ich:
/// The indices of objects in the previous version of the collection which have
/// been removed from this one.
@property (nonatomic, readonly) NSArray<NSNumber *> *deletions;
/// The indices in the new version of the collection which were newly inserted.
@property (nonatomic, readonly) NSArray<NSNumber *> *insertions;
Meine Frage ist in diesem Code-Schnipsel:
RLMResults *contacts = [CYRLMAddressBookContact allObjects];
RLMNotificationToken *token = [contacts addNotificationBlock:^(RLMResults *_Nullable results,
RLMCollectionChange *_Nullable change,
NSError *_Nullable error) {}];
kann contacts
eine "vorherige Version" der Sammlung in Betracht gezogen werden?
Wenn nicht ist es sicher, contacts
in eine NSArray
zu konvertieren, und das wäre eine "vorherige Version" der Sammlung?
Danke @ Tim. Das war hilfreich. Was ich hier machen möchte, ist nicht auf die Benutzeroberfläche bezogen. Aber ich muss die eingefügten und gelöschten Objekte nach dem Update kennen. Kennen Sie einen besseren Weg, dies zu erreichen, ohne die Objekte in ein NSArray zu kopieren? In diesen Fällen konnte Realm die beiden Kopien der Ergebnismenge, die vorherige und die neue Version, übergeben. –
Keine Probleme! Froh, dass ich helfen konnte! Ja wirklich? Im Moment konzentrieren wir uns auf die feinkörnige Benachrichtigungsfunktion hauptsächlich auf UI-basierten Änderungen. An welchem Anwendungsfall arbeiten Sie dann? Wir würden uns freuen, davon zu hören! Im Moment tut es mir nicht leid. Ihre beste Wette wäre im Moment der NSArray-Ansatz. Es gab Diskussionen darüber, ob die "alten" Objekte auch im Benachrichtigungsblock zur Verfügung gestellt würden, aber derzeit wäre es schwierig und zeitaufwändig hinzuzufügen. – TiM
Ich habe diese Antwort heute nur gesehen. Es tut uns leid. Ich folge Realm seit einiger Zeit. Ich verstehe deine Prioritäten. Ich habe versucht, feinkörnige Benachrichtigungen in einer Synchronisierungslösung zu nutzen. Wo würde ich Adressbuch Kontakte zu einer Tabelle in Bereich zu synchronisieren, und danach würde ich wissen, welche Kontakte hinzugefügt/gelöscht/aktualisiert wurden, so dass ich das zu unserem Remote-Server kommunizieren konnte. –