UITableViewController和自动更新结果

时间:2015-11-02 12:57:31

标签: swift uitableview realm

我目前正在Swift 2.0中开发和iOS应用程序,我遇到了以下问题:

我有一个自定义查询,用于获取填充UITableView的项目列表。当点击单元格时,我得到(values [indexPath.row])对象并将其转移到另一个视图控制器以显示以及项目列表(对于其他操作,例如滑动以移动到下一个)。

我的问题来自后台进程,它定期获取新数据并将其保存到Realm。

由于Realm保持良好且更新,因此indexPath.row将获取不同的值(由于自动更新程序,值列表在此期间已发生更改),从而导致显示的内容不完整。

Realm和更新程序都在工作,但这会给用户带来令人困惑的体验。

我错过了一些明显的东西吗?

非常感谢您的帮助!

PS:我也看过ABFRealmTableViewController,但我没有显示整个数据,而是显示已过滤(和有序)的子集。

2 个答案:

答案 0 :(得分:1)

当发生写入事务(即更新)时,阻止此问题的最简单方法可能是observe notifications sent out by Realm并相应地更新您的UI:

// Observe Realm Notifications
let token = realm.addNotificationBlock { notification, realm in
    viewController.updateUI()
}

答案 1 :(得分:0)

ABFRealmTableViewController也支持filters via NSPredicatesort descriptors。所以你可能想再试一次。