Кэширование изображений - NSURLRequest и cachePolicy Vs Custom code - PullRequest
2 голосов
/ 20 января 2011

У меня есть несколько UITableView, которые асинхронно загружают изображения и текст из Интернета. Я хочу кэшировать изображения для повышения производительности.

Что будет лучше:

* Using NSURLRequest and cachePolicy?
* Saving the image to file system?

Для случаев NSURLRequest и cachePolicy, как бы я очистил изображения, если я не хочу их использовать.

1 Ответ

2 голосов
/ 05 мая 2011

NSURLRequest должен нормально работать с политикой кэширования по умолчанию, если загружать образ только один раз за прогон (т. Е. Он кэшируется в памяти). Однако iPhone не кэширует данные на диск.

Документы немного противоречивы по этому вопросу. Например, документы по NSURLCache initWithMemoryCapacity: diskCapacity: diskPath говорят, что diskPath в iOS должен быть именем подкаталога, в котором будет храниться кэш на диске.

Но документация по NSURLCacheStoragePolicy гласит:

Важно: iOS игнорирует этот кеш политика, а вместо этого рассматривает это как NSURLCacheStorageAllowedInMemoryOnly.

Исходя из фактического тестирования, последний, кажется, имеет место. Поэтому независимо от того, какие параметры вы установили, вы не получите кэширование на диск на iOS (в настоящее время). Поэтому, если вы хотите, чтобы ваше изображение оставалось между циклами, вам нужно сохранить его в файловой системе.

Некоторые рекомендовали https://github.com/rs/SDURLCache для этой цели, хотя я сам еще не пробовал.

...