Управление размером директории песочницы приложения iPhone tmp для кэширования изображений - PullRequest
4 голосов
/ 19 сентября 2010

У меня довольно емкое приложение для iPhone, и я стараюсь хранить удаленно загруженные изображения локально в каталоге tmp песочницы приложения, чтобы избежать ненужных сетевых запросов. Есть ли ограничение на общий размер файлов, хранящихся в каталогах приложения, или приложение должно управлять этим? Как приложение определит размер файлов в каталоге tmp?

Кроме того, если приложению необходимо управлять размером кэша, я бы хотел реализовать некоторую политику кэширования, чтобы определить, какие файлы становятся недействительными. Как бы я поступил так? Если я хочу реализовать базовую политику кэширования LRU - аннулировать файлы, которые использовались не так давно, - мне кажется, что мне нужно было бы хранить счетчики доступа для каждого изображения и также сохранять их на диске, что кажется довольно странным. Я полагаю, что простой политикой управления размером было бы просто полностью очистить кеш при каждом завершении работы приложения.

Кроме того, в чем разница между использованием каталога из NSCachesDirectory и NSTevenDirectory? Документы Apple упоминают оба, но не говорят о том, какой из них использовать для какого типа файлов. Я думаю, что NSTevenDirectory больше похож на каталог Unix / var / tmp и используется для временных данных, которые могут быть уничтожены в любое время. Мне кажется, NSCachesDirectory больше подходит для хранения кэшированных изображений, поскольку файлы могут понадобиться на протяжении нескольких жизненных циклов приложения.

1 Ответ

2 голосов
/ 19 сентября 2010

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

Политика постоянного кэширования LRU должна быть достаточной и относительно простой для реализации.

...