Сколько объектов я должен получить с сервера и сколько можно хранить в NSCache?
Мой сервис возвращает до 500 объектов за раз. Я заметил, что мое приложение iphone падает, когда объем данных превышает 60 объектов. Чтобы обойти эту проблему, я запускаю запрос, который возвращает только 40 лучших результатов, но это медленнее, чем просто возвращение всех данных
- Каковы лучшие практики и как я могу получить больше объектов?
- Каков максимальный объем памяти, выделяемый приложению в iphone, и есть ли способ его увеличить?
- Сколько объектов я должен получить с сервера
- Сколько можно хранить в NSCache?
1 ответ
Возможно, вам следует использовать NSData для получения данных из вашего сервиса вместо NSCache.
NSCache предназначен для временных объектов, однако NSData используется для перемещения данных между приложениями (из вашего сервиса в ваше приложение)
Описание NSCache от Apple:
Объект NSCache - это контейнер, похожий на коллекцию, или кэш, в котором хранятся пары ключ-значение, аналогичные классу NSDictionary. Разработчики часто включают кэши для временного хранения объектов с временными данными, которые дорого создавать. Повторное использование этих объектов может повысить производительность, поскольку их значения не нужно пересчитывать. Однако объекты не являются критичными для приложения и могут быть отброшены, если не хватает памяти. Если отбрасывать, их значения придется пересчитывать заново при необходимости.
Описание NSData от Apple:
* NSData и его изменяемый подкласс NSMutableData предоставляют объекты данных, объектно-ориентированные оболочки для байтовых буферов. Объекты данных позволяют простым выделенным буферам (то есть данным без встроенных указателей) принимать поведение объектов Foundation.
NSData создает статические объекты данных, а NSMutableData создает динамические объекты данных. NSData и NSMutableData обычно используются для хранения данных, а также полезны в приложениях распределенных объектов, где данные, содержащиеся в объектах данных, можно копировать или перемещать между приложениями.*