18 февр. 2014 г.

NSCache контейнер - кэш

Объект NSCache является контейнером или кэшем, который хранит пары “ключ-значение”, аналогично классу NSDictionary. Разработчики часто используют кэши для временного хранения объектов, создание которых является дорогостоящим. Повторное использование этих объектов может обеспечить повышение производительности, потому что их значения не должны быть пересчитаны. Однако, эти объекты не являются критическими для приложения и могут быть удалены, если память ограничена. Если такие объекты удалить, их значения нужно вычислить заново, когда это необходимо.
Пока пара ключ-значение в кэше, кэш поддерживает сильную ссылку на него. Общие типы данных, хранящиеся в объектах NSCache — это объекты, которые реализуют протокол NSDiscardableContent. Хранение объектов этого типа в кэше имеет преимущества, поскольку их содержимое может быть удалено, если они больше не нужны, что приводит к экономии памяти. По умолчанию объекты, реализующие NSDiscardableContent, автоматически удаляются из кэша, если их содержимое удаляется, хотя эта политика автоматического удаления могут быть изменена.
Объекты NSCache имеют несколько отличий от других изменяемых коллекций. Класс NSCache включает в себя различные политики автоматического удаления, обеспечивающие использование не слишком большого количества памяти системы. Система автоматически осуществляет эти политики, если память необходима другим приложениям. При вызове эти политики удаляют некоторые элементы из кэша, сводя к минимуму использование памяти. Вы можете добавлять, удалять и запрашивать элементы из кэша из разных потоков без необходимости блокировки кэша. В отличие от объекта NSMutableDictionary, кэш не копирует ключевые объекты, добавленные в него.
Методы класса
Изменение имени кэша

Название
Описание
- name
Возвращает имя кэша.
- setName:
Устанавливает имя кэша из заданной строки.

Получение кэшированных значений


Название
Описание
- objectForKey:
Возвращает значение, связанное с указанным ключом.

Добавление и удаление кэшированных значений



Название
Описание
- setObject:forKey:
Устанавливает значение указанного ключа в кэше.
- setObject:forKey:cost:
Устанавливает значение указанного ключа в кэше и связывает пару ключ-значение с указанной стоимостью.
- removeObjectForKey:
Удаляет значение из кэша по указанному ключу.
- removeAllObjects
Очищает кэш, удалив все объекты.
Управление размером кэша


Название
Описание
- countLimit
Возвращает максимальное количество объектов, которые в настоящее время может содержать кэш.
- setCountLimit:
Задаёт максимальное число объектов, которое кэш может содержать.
- totalCostLimit
Возвращает максимальную общую стоимость, которую может иметь кэш до начала вытеснения объектов.
- setTotalCostLimit:
Задаёт максимальную общую стоимость, которую может иметь кэш до начала вытеснения объектов.

Управление удаляемым содержимым


Название
Описание
- evictsObjectsWithDiscardedContent
Возвращает логическое значение, указывающее, будет ли кэш автоматически вытеснять объекты, содержимое которых было удалено.
- setEvictsObjectsWithDiscardedContent:
Устанавливает логическое значение, указывающее, будет ли кэш автоматически вытеснять объекты, содержимое которых было удалено.

Управление делегатом

Название
Описание
- delegate
Возвращает делегат кэша.
- setDelegate:
Устанавливает заданный объект делегатом кэша.

2 комментария: