Однако, когда я перезапускаю приложение, я снова получаю обе метки, как будто изображение фактически не кешируется
Это потому, что NSCache
- это кэш памяти, а не диск кэш. Вещи, которые вы добавляете в экземпляр NSCache
, не сохраняются при перезапуске. Если вы хотите избежать загрузки того же изображения из сети после перезапуска приложения, вам необходимо сохранить изображение во вторичном хранилище и прочитать его обратно при запуске приложения или когда вам снова понадобится изображение. NSCache
будет сохранять объекты в памяти, пока это возможно, а затем освобождать их, когда памяти недостаточно. Поэтому, как только вы загрузили образ и сохранили его на диск, вы можете сохранить его в NSCache
, чтобы сохранить его в памяти, чтобы вам не приходилось нажимать на диск второй раз. Это может помочь с производительностью, если у вас есть много изображений или других больших ресурсов, которые вы хотели бы иметь под рукой, но которые вы также можете прочитать снова, если вам нужно.