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