2016-07-02 3 views
0

я заметил, что в Realm Swift, есть RealmCollectionChange https://realm.io/docs/swift/latest/#realm-notificationsМожет ли RealmCollectionChange использоваться как способ синхронизации данных с сервером?

кажется, содержат объекты, которые были изменены. Могу ли я использовать этот блок уведомлений для добавления кода для синхронизации данных с базой данных на заднем конце? Является ли блок уведомлений запущен в главной очереди?

ответ

1

Обязательно вы можете использовать предоставленные механизмы уведомления для распространения изменений на сервере. Однако вы должны убедиться, что ваши запросы на сервер не вызывают новых изменений после ответа сервера, в противном случае вы можете столкнуться с ситуацией, когда вас будут постоянно уведомлять о новых обновлениях, как это также видно в разделе связанных документов d.

Блок уведомлений запускается в потоке, на котором вы его добавляете. Но эти API доступны только для автоматического обновления Realms, для которых требуется runloop. По умолчанию только основной поток имеет runloop, если вы не запускаете какие-либо дополнительные функции по выделенным фоновым потокам.

Помните, что синхронизация является нетривиальной проблемой, и использование этих уведомлений само по себе не даст вам полного решения для каждой задачи, связанной с этим проблемным пространством.

+0

Да, я тоже заметил эту проблему. Типичным примером использования является синхронизация нескольких устройств, что очень сложно. – dickyj

Смежные вопросы