【问题标题】:Realm fetch in batches批量获取领域
【发布时间】:2015-11-14 11:00:02
【问题描述】:

我正在使用领域,我想知道是否有办法批量获取对象。

例如,假设我有一个领域对象AuthorBookAuthor 有一个名为books 的属性,它是一对多关系(类型List<Book>

现在我有一个视图控制器,它可以获取一个Author 对象并展示他的所有书籍。 目前我只是使用author.books作为数据,但我想批量获取书籍,让用户滚动查看下一批书籍。

我认为调用author.books 作为数据库查询并不太昂贵,因为领域会延迟加载这些对象,但我仍然更喜欢小批量加载,因为它具有其他性能影响,例如如果我使用整个@987654329 @ 作为我的数据源,会为每个元素调用一些表视图委托方法,如 heightForRow,这可能会影响性能。

【问题讨论】:

    标签: ios objective-c database swift realm


    【解决方案1】:

    Realm 在 SQL 中没有 limit 之类的功能。但是您可以自己控制要显示的数字。

    如果要限制显示的数量,可以先在tableView(_:, numberOfRowsInSection:)方法中返回小数。

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return batchSize * batchCount // e.g. batchSize == 20
    }
    

    并根据需要增加显示数量。例如,它使批量大小加倍“加载更多”按钮被按下。

    如您所知,Realm 会延迟加载所有对象,加载所有对象不会影响性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      相关资源
      最近更新 更多