Сколько объектов я должен получить с сервера и сколько можно хранить в NSCache?

Мой сервис возвращает до 500 объектов за раз. Я заметил, что мое приложение iphone падает, когда объем данных превышает 60 объектов. Чтобы обойти эту проблему, я запускаю запрос, который возвращает только 40 лучших результатов, но это медленнее, чем просто возвращение всех данных

  1. Каковы лучшие практики и как я могу получить больше объектов?
  2. Каков максимальный объем памяти, выделяемый приложению в iphone, и есть ли способ его увеличить?
  3. Сколько объектов я должен получить с сервера
  4. Сколько можно хранить в NSCache?

1 ответ

Возможно, вам следует использовать NSData для получения данных из вашего сервиса вместо NSCache.

NSCache предназначен для временных объектов, однако NSData используется для перемещения данных между приложениями (из вашего сервиса в ваше приложение)

Описание NSCache от Apple:

Объект NSCache - это контейнер, похожий на коллекцию, или кэш, в котором хранятся пары ключ-значение, аналогичные классу NSDictionary. Разработчики часто включают кэши для временного хранения объектов с временными данными, которые дорого создавать. Повторное использование этих объектов может повысить производительность, поскольку их значения не нужно пересчитывать. Однако объекты не являются критичными для приложения и могут быть отброшены, если не хватает памяти. Если отбрасывать, их значения придется пересчитывать заново при необходимости.

Описание NSData от Apple:

* NSData и его изменяемый подкласс NSMutableData предоставляют объекты данных, объектно-ориентированные оболочки для байтовых буферов. Объекты данных позволяют простым выделенным буферам (то есть данным без встроенных указателей) принимать поведение объектов Foundation.

NSData создает статические объекты данных, а NSMutableData создает динамические объекты данных. NSData и NSMutableData обычно используются для хранения данных, а также полезны в приложениях распределенных объектов, где данные, содержащиеся в объектах данных, можно копировать или перемещать между приложениями.*

Другие вопросы по тегам