gpt4 book ai didi

ios - 具有后台进程的 Realm 实例丢失数据

转载 作者:行者123 更新时间:2023-11-28 13:47:32 25 4
gpt4 key购买 nike

我将 Realm for Swift 与仅内存配置一起使用。由于在后台线程中更新数据库,我每次使用它时都会创建一个 Realm 实例。 Realm documentation 中提到了这一点这里还有一个问题https://stackoverflow.com/a/45375608/613121 .

但是通过测试数据库,我注意到了一个不可预知的行为。有时数据库是空的,更新会重新填充数据库而不是更新。原因似乎是 Realm 在写入后被释放。

解决方案可能是在主线程中持有一个强引用。我将 Realm 配置保存在一个单例中。单例返回一个具有相同配置的新 Realm 以进行更新并保持对另一个 Realm 的强引用以防止丢失是否安全?

最佳答案

听起来应该可以正常工作。您必须尝试一下,这可能比在此处等待确定的答案更快。

我会写一个单例类,作为构造函数的一部分定义 Realm 配置并存储它,同时打开并存储该 Realm 的一个实例。然后我会为该类添加一个访问器供您的线程使用;它将使用相同的配置返回一个新的 Realm 实例。当它们超出范围时(并且您应该允许它们超出范围),由于单例实例维护其引用,您的 Realm 将持续存在。

我可能错误地阅读了您提到的第一个问题,但这不是处理内存 Realm ,因此不要求您在某处保留引用。

关于ios - 具有后台进程的 Realm 实例丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55223330/

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