2016-07-02 3 views
0

Ich bemerkte, dass in Realm Swift, ein RealmCollectionChange ist https://realm.io/docs/swift/latest/#realm-notificationsKann RealmCollectionChange verwendet werden, um Daten zurück zum Server zu synchronisieren?

Es um die Objekte zu enthalten scheint, die sich geändert haben. Kann ich diesen Benachrichtigungsblock verwenden, um Code zum Synchronisieren der Daten in eine Back-End-Datenbank hinzuzufügen? Wird der Benachrichtigungsblock in der Hauptwarteschlange ausgeführt?

Antwort

1

Sicher können Sie die bereitgestellten Benachrichtigungsmechanismen verwenden, um Änderungen an einen Server zu übermitteln. Sie sollten jedoch sicherstellen, dass Ihre Anforderungen an den Server keine neuen Änderungen verursachen, sobald der Server reagiert, andernfalls können Sie in Situationen geraten, in denen Sie ständig über neue Updates informiert werden, wie auch im entsprechenden Dokumentabschnitt User-Driven Updates.

Der Benachrichtigungsblock wird auf dem Thread ausgeführt, auf dem Sie ihn hinzufügen. Diese APIs sind jedoch nur für das automatische Aktualisieren von Realms verfügbar, für die ein Runloop erforderlich ist. Standardmäßig hat nur der Hauptthread einen Runloop, wenn Sie selbst keine zusätzlichen Hintergrundthreads ausführen.

Beachten Sie, dass die Synchronisierung ein nicht-triviales Problem ist und dass die Verwendung dieser Benachrichtigungen Ihnen keine vollständige Lösung für jede in diesen Problembereich involvierte Herausforderung bietet.

+0

Ja, ich habe dieses Problem auch bemerkt. Der typische Anwendungsfall ist die Synchronisierung mehrerer Geräte, was sehr schwierig ist. – dickyj

Verwandte Themen