2016-03-28 6 views
0

Мы создаем приложение iOS с поддержкой React-Native, которое должно получить доступ к нашим областям как изначально, так и через RN.Realm - RJSRealmDelegate.changes_available assert (0), вызывающий сбой

У нас есть работа, правильно работающая с нашим пользовательским интерфейсом, и мы можем загружать данные в наш справочный сервис Swift, но после записи метод change_available в js_realm.cpp запускается, содержащий assert (0), из-за которого приложение вылетает/зависание в отладке. Что нам нужно делать, чтобы предотвратить запуск этого метода?

ответ

0

Обновление: выпуск был только что сделан (0.11.1), который должен предотвратить возникновение этого сбоя. Обратите внимание, что уведомления по привязкам еще не протестированы и могут не работать.

Этот метод вызывается, когда изменения производятся извне в Realm из другого процесса или потока. В вашем случае это звучит так, как записи, сделанные из быстрого apis, вызывают вызов этого метода. Связывание ReactNative было написано с предположением, что все будет сделано из одного потока, не учитывая одновременное использование других языковых привязок.

Как единственное, что вы можете предотвратить, это не делать запись в Swift, пока в JS открыто Realm. Один из способов сделать это - позвонить по телефону Realm.close после каждого использования, хотя это может плохо работать.

В ближайшее время мы также можем сделать точечный релиз, чтобы удалить assert(0) - это предотвратит сбои/зависание, но уведомления об изменениях, внесенных в Swift, не будут работать без дополнительных изменений. Невозможно дать оценку того, когда мы можем получать уведомления о перекрестных ссылках.

+0

Этот сбой больше не должен возникать. Дайте нам знать, как это происходит. – Ari

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