我们正在构建一个React-Native iOS应用程序,需要通过本机和RN访问我们的领域。
我们已经从我们的UI中正确编写了工作,并且可以在我们的后台Swift服务中加载数据,但是在写入之后,js_realm.cpp中的changes_available方法正在触发,其中包含断言(0)导致应用程序崩溃/挂起调试。我们需要做些什么来防止该方法被触发?
答案 0 :(得分:0)
更新:刚刚发布了一个版本(0.11.1),可以防止发生此崩溃。请注意,绑定之间的通知尚未经过测试,可能无效。
当从另一个进程或线程向外部进行更改时,将调用此方法。在你的情况下,听起来像swift apis的写入导致这个方法被调用。编写ReactNative绑定时假设所有内容都是从单个线程完成的,而不考虑同时使用其他语言绑定。
你可以做的唯一事情就是防止这是因为当一个Realm在JS中打开时,不要在Swift中编写。一种方法是在每次使用后调用Realm.close
,尽管这可能表现不佳。
在短期内我们还可以执行点发布以删除assert(0)
- 这可以防止崩溃/挂起,但是在没有其他更改的情况下,Swift中所做更改的通知将无法正常工作。我们无法估计何时可以正常使用跨语言通知。