我是Realm(Swift)的新手,并尝试采用最佳架构。
假设我有一个屏幕1,我加载对象A,B和C,我保存在Realm数据库和显示中。然后我去屏幕2,我加载相同类型的对象,但我加载其他对象C,D和E.如果我回到屏幕1,我不想找到自己的A,B,C, D和E.我想像以前一样找到A,B和C,所以我需要过滤。
我想到了两个策略: 第一个是在屏幕1中保留我的对象的uuids数组和avec结果,我查询我的uuids表所包含的对象,但它不起作用,因为我的uuids数组不是活的,所以我的我从uuids数组中添加或删除uuids这一事实不会触发更改。
第二种策略是在模型中添加一个瞬态属性,以了解在哪里显示哪些对象。问题是如果两个屏幕都包含对象C,那么瞬态属性将在我访问的最后一个屏幕上更新,并且由于瞬态属性被修改,该对象在前一个屏幕上不可见。
答案 0 :(得分:0)
如果需要显式挂起特定视图控制器中的某些Realm对象,可以将这些特定对象从Results
对象复制到标准Swift数组,如果有任何新项目,则不会更新加入。
这个解决方案非常短暂。如果你想稍后从头开始恢复到这个视图控制器,那么实际上将这种状态持久保存到Realm(并使用你所说的过滤器)可能是更好的选择。
如果这没有帮助,您可能需要提供有关您实际尝试在此处执行的操作的信息(项目A,B和C实际上代表什么?)以便我们可以更好地了解您的问题我试图在这里解决。 :)