与Alamofire和realm.io的分页

时间:2015-11-08 19:48:35

标签: ios swift uitableview realm alamofire

我有一个看似http://URL/news/:lastloaded/:size的api,其中lastloadedsize是api应该返回的对象范围。这个api返回一个不同的新闻列表,我想在tableView中显示。但是为了使其有效,我不想进行某种分页,因此并非所有对象都被加载到tableView中。这是通过像

这样的简单变量实现的
let pageSize = 20
var lastLoadedPage = 0

然而,我如何确保我的案例中的数据库realm.io始终是最新的来自api的所有新闻。如果它更容易,我可以轻松更改api并添加更多参数?什么是最佳做法?我正在使用Alamofirerealm.io

1 个答案:

答案 0 :(得分:6)

Realm本身并不需要分页。数据直接保存到磁盘,然后只调用所需的属性,因为它们被调用。因此,它具有非常高的内存效率,因此不需要管理内存中的对象块(如分页工作)。

如果你想“模拟”Realm的分页,只需要查询所有对象作为List,然后拉出你想要显示的对象的子集。

总而言之,对您的Web API调用进行分页可能仍然是明智之举,因此您不必不必要地下载超出您需要的新闻项目,但是一旦将它们下载并保存到Realm,您将不需要担心任何类似的设备端逻辑。 :)