我有查询Realm数据库并列出其结果的UITableView视图。该查询包含各种过滤器和排序指令。如何在Swift中传递Realm结果?
当用户选择一个表项时,它们被带到一个详细视图,允许他们向左或向右滑动来查看查询中的前一个/下一个结果(按照它们出现在UITableView中的顺序)。这个细节视图是一个单独的ViewController,我现在正在将结果传递给细节视图控制器,以便它可以在它们之间来回移动。
这很好,直到引入删除项目的能力。用户可以删除项目,我说用户是因为其他人可以删除项目,并且删除将传播给所有用户(通过互联网)。现在,如果用户已进入详细信息视图,并且某人远程删除了某个项目,则分配给详细视图的结果集现在不一致。即使表格视图中的原始结果确实得到更新,它也不会更新。
我怀疑会发生这种情况,因为该变量是由值而不是由引用。
当传递Realm对象时,推荐的做法是传递ID并再次执行查找,但涉及到结果时该怎么办?我应该把过滤/排序代码放在一个UITableViewController和细节控制器都可以访问的地方,以便它们都可以单独提取结果吗?或者,有没有更好的办法,我忽略了?