我正在使用领域,我想知道是否有一种批量获取对象的方法。
例如可以说我有一个领域对象Author
和Book
,Author
有一个名为性质books
是一对多的关系(类型List<Book>
)
现在我有一个视图控制器,可以获取一个Author
对象并展示他的所有书籍。目前,我只是author.books
用作数据,但我想分批获取这些书,并让用户滚动查看下一批书。
我认为调用author.books
作为数据库查询并不太昂贵,因为领域会延迟加载那些对象,但是我仍然更喜欢小批量加载,因为它会产生其他性能影响,例如,如果我将整个数据库author.books
用作数据源,则使用某些表视图heightForRow
将为每个元素调用诸如此类的委托方法,这可能会影响性能。
Realm不具有limit
SQL中的功能。但是您可以控制自己显示的数字。
如果要限制显示的数量,可以tableView(_:, numberOfRowsInSection:)
先在方法中返回小计数。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return batchSize * batchCount // e.g. batchSize == 20
}
并根据需要增加显示数量。例如,它使批处理大小增加了一倍,并按下了“加载更多”按钮。
如您所知,Realm延迟加载所有对象,而加载所有对象没有性能损失。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句