Это может быть ожидаемое поведение, но Apple явно не указано.NSCache всегда выдает данные изображения, когда приложение входит в фон.
Я использую NSCache
для кеширования некоторых изображений для своих UICollectionView
. Когда я помещаю приложение в фоновом режиме и открываю его снова (сразу), все мои изображения больше не находятся в NSCache
.
В идеале, я бы хотел, чтобы последние загруженные изображения оставались кэшированными, так что, когда пользователь снова открывает приложение, им не придется оплачивать стоимость загрузки всех изображений снова. Кажется, что NSCache
должен допускать менее агрессивную политику кэширования.
Я просто хотел опубликовать здесь, чтобы проверить работоспособность и убедиться, что я не пропущу ничего очевидного.
В противном случае мне придется реализовать свой собственный кеш, который хранит только последние 25 загруженных изображений в кеше NSMutableDictionary
.
Я протестировал его таким образом, что я поставил несколько изображений в кеш, положил приложение в фоновом режиме и вернул его на передний план, и эти изображения, похоже, были выселены. Я кэширую изображения после получения их из набора setImageWithURLRequest от AFNetworking. Интересно, имеет ли это какое-либо отношение к этому? Может быть, что-то еще выпускает изображения, когда приложение переходит в фоновый режим? – chrysb
Я согласен, и это то, что упоминается в документах. Возможно, вы захотите использовать некоторые переменные сеанса (например, singleton class) и вместо них установить их. – Abhinav
Спасибо - я постараюсь больше и отчитаюсь. – chrysb