Проектный подход, сокращающий ненужные вызовы API и сохраняющий данные локально - PullRequest
0 голосов
/ 01 мая 2018

Я разрабатываю приложение для iOS с целью-C. По моему запросу «GET» я получаю большой объем данных json в следующем формате.

[{@ "value": @ 1, @ "day": @ 2, @ "hour": @ 1}, {@ "value": @ 1, @ "day": @ 1, @ "hour ": @ 1} ....]

Примечание. Этот массив всегда содержит 168 объектов с фиксированным числом.

Внутри моего приложения у меня есть различные элементы управления пользовательским интерфейсом, которые предполагают, чтобы показать разные порции полученных данных. Например, нажав кнопку «Button1», предположим, что на ней отображается ob1 --- obj10 и так далее

В теории все работает, но я не доволен своим подходом к дизайну. Потому что для каждого нажатия кнопки я вызываю API, чтобы снова получить весь набор данных и извлечь необходимые данные.

В идеале, я думаю, что должно произойти, я должен хранить данные локально по первому запросу 'GET', и различные классы в моем приложении должны иметь возможность извлекать требуемую информацию.

Тот же метод должен применяться к моим запросам POST. Меня смущают, какие у меня есть варианты, и что лучше всего делать в этой ситуации. Я могу думать о следующих

  1. Сохранить данные в массиве?
  2. Хранить данные в базе данных как sqlite?
  3. Наконец-то списки?
  4. Использование основных данных немного излишне?

1 Ответ

0 голосов
/ 02 мая 2018

168 записей, каждая из которых имеет размер около 40 байт, дает около 7 Кбайт данных, что, вероятно, уменьшается до 2 Кбайт, если ваш сервер API поддерживает сжатие gzip. Это ничего не соответствует современным веб-стандартам.

Вы можете загрузить его полностью, проанализировать и сохранить в переменной в вашем контроллере представления. Я рекомендую создать класс "модель" (как в MVC ), чтобы красиво обернуть ваши данные и выделить логику выбора строк.

CoreData (или SQLite) определенно является излишним для этого объема данных.

Вы можете использовать что-то вроде plist или NSKeyedArchiver для кэширования данных на диск, если вам нужна автономная поддержка, т.е. вы хотите, чтобы приложение работало без подключения к Интернету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...