2015-11-08 4 views
2

У меня есть api, который может выглядеть как http://URL/news/:lastloaded/:size, где lastloaded и size - это диапазон объектов, которые должен возвращать api. Этот api возвращает список различных новостей, которые я хочу показать в tableView. Однако, чтобы сделать его эффективным, я не сделаю какую-то разбивку на страницы, чтобы не все объекты загружались в tableView. Это я уже достигнуто за счет простых переменных, какРазбиение страницы с помощью Alamofire и realm.io

let pageSize = 20 
var lastLoadedPage = 0 

однако как я убедиться, что база данных в моем случае всегда realm.io находится в курсе всех новостей из апи. Я могу легко изменить api и добавить дополнительные параметры, если это упростит? Что такое лучшая практика? я использую Alamofire и realm.io

ответ

5

Сама по себе сама по себе не требует разбивки на страницы. Данные сохраняются прямо на диск, и тогда только требуемые свойства лениво выгружаются, поскольку они вызываются. Таким образом, он очень эффективен с точки зрения памяти, настолько, что управление блоками объектов в памяти (например, с разбивкой по страницам) не требуется.

Если вы хотите «имитировать» разбиение на страницы с помощью Realm, это просто вопрос запроса всех объектов в виде списка, а затем вытаскивание подмножества объектов, которые вы хотите отобразить.

Что все сказано, вероятно, все же разумно разбивать ваши вызовы на веб-API, чтобы вы не нуждались в загрузке большего количества новостей, чем вам нужно, но как только они будут загружены и сохранены в Realm, вы не будете нужно беспокоиться о любой подобной логике на стороне устройства. :)

Смежные вопросы