使用 Alamofire 和 realm.io 进行分页

Pagination with Alamofire and realm.io

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

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

但是我如何确保我的数据库 realm.io 始终与 api 的所有新闻保持同步。我可以很容易地更改 api 并添加更多参数,如果这样更容易吗?什么是最佳实践?我正在使用 Alamofire and realm.io

Realm 本身实际上不需要分页。数据直接保存到磁盘,然后只有需要的属性在调用时才被延迟分页。因此,它非常节省内存,以至于不需要管理内存中的对象块(如分页工作)。

如果您想 'simulate' 使用 Realm 进行分页,只需将所有对象作为列表进行查询,然后提取您希望显示的对象的子集即可。

综上所述,将您的网络呼叫分页可能仍然是明智的 API 这样您就不会不必要地下载比您需要的更多的新闻项目,但是一旦它们被下载并保存到 Realm ,您无需担心任何类似的设备端逻辑。 :)