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