gpt4 book ai didi

swift - Realm - RJSRealmDelegate.changes_available 断言(0)导致崩溃

转载 作者:行者123 更新时间:2023-11-30 13:34:07 25 4
gpt4 key购买 nike

我们正在构建一个 React-Native iOS 应用程序,它需要本地以及通过 RN 访问我们的 Realm 。

我们的 UI 写入工作正常,并且可以在后台 Swift 服务中加载数据,但写入后,js_realm.cpp 中的changes_available 方法正在触发,其中包含断言(0),这导致应用程序崩溃/挂起调试。我们需要做什么来防止该方法触发?

最佳答案

更新:刚刚发布了一个版本 (0.11.1),应该可以防止发生此崩溃。请注意,跨绑定(bind)的通知尚未经过测试,可能无法正常工作。

当从另一个进程或线程对 Realm 进行外部更改时,会调用此方法。在您的情况下,听起来像是从 swift api 进行的写入导致调用此方法。 ReactNative 绑定(bind)的编写假设一切都将在单个线程中完成,而不考虑同时使用的其他语言绑定(bind)。

防止这种情况发生的唯一方法是,当 Realm 在 JS 中打开时,不要在 Swift 中进行写入。一种方法是在每次使用后调用 Realm.close,尽管这可能表现不佳。

在短期内,我们还可以进行点发布以删除 assert(0) - 这将防止崩溃/挂起,但如果没有其他更改,Swift 中所做更改的通知将无法工作。无法估计我们何时可以让跨语言通知正常工作。

关于swift - Realm - RJSRealmDelegate.changes_available 断言(0)导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36271884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com