ios - Realm 对象在写入前获取 `invalidated`,仅在第一次运行时

标签 ios swift realm

这个真的很痛!

我创建了一个像 var job = Job() 这样的实体,并将它传递给一些具有 var job: Job? 属性的 View Controller ,每个 View Controller 是一种在 job 上设置一些属性的表单,最终 View 有一个提交按钮,它通过网络发送作业并将其写入 realm.write {}

现在,我得到各种对象已被删除或无效。RLMArray 不再有效。 Realm 异常在到达最后一个 View 之前使应用程序崩溃或甚至编写实体,这只会在全新安装后的首次运行时发生!第一次崩溃后它工作正常。我花了一整天调试,但无法弄清楚为什么会发生这种情况。

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

最佳答案

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

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

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

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

关于ios - Realm 对象在写入前获取 `invalidated`,仅在第一次运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32367805/

相关文章:

ios - 如何将 CoreData (NSManagedObject) 设置为 AvAudioRecorder 的目的地?

ios - 使用 UIPickerView 选定行用数组数据更新 UIButton 标题

ios - 可重复使用的 TableViewCell 异步高度

android - findFirstAsync() 返回 "invalid object"但 findFirst() 或 findAllAsync() 有效

javascript - Realm 错误 : "JS value must be of type: number"

ios - 是 [WkInterfaceDevice addCachedImage :] Thread Safe?

ios - 异常 : addEvent is not a recognised Objective C method

ios - 不知道如何将触摸作为单个实体处理

ios - Swift 编译器错误 - 在为 'tableView' 发出 SIL 时

setDefaultConfiguration 的 Android Realm 问题