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