领域对象在写入前“无效”,仅在第一个 运行

Realm object gets `invalidated` before write, only on first run

这个真的很痛!

我创建了一个类似 var job = Job() 的实体,并将其传递给一些具有 var job: Job? 属性 的视图控制器,每个视图控制器都是一个设置某些属性的表单在 job 上,最终视图有一个提交按钮,它通过网络发送作业并将其写入 realm.write {}

现在,在到达最后一个视图甚至写入实体之前,我遇到了各种 Object has been deleted or invalidated.RLMArray is no longer valid. 领域异常导致应用程序崩溃,这只发生在第一个 运行 全新安装后!第一次崩溃后它工作正常。我花了一整天的时间调试,无法弄清楚为什么会这样。

有没有人对领域有类似的经历/问题?

所以这个问题得到了适当的解决,我将在这里总结我们在该线程中进行的讨论。

问题不是 job 本身没有失效,而是 job 有一个名为 user 的子 Realm 对象 属性 并且它正在变为无效。

正在清除数据库中的所有用户,以便为从服务器下载的新列表让路,而该事务是导致此问题的原因。

因此,根据经验,我认为从这个问题中得出的结论是要小心删除事务,因为它们可能会对删除时可能引用该对象的其他对象产生隐式影响。