Код использует NSMutableDictionary *thumbnailCache
для кэширования экземпляров UIImage.Код предполагает, что в комплекте приложений есть каталог thumbnails
с уменьшенными версиями их изображений.
Теперь метод сначала ищет в словаре thumbnailCache
миниатюру для данного изображения (которая являетсятолько имя файла без полного пути, например myimage.png
).Если в словаре уже не было изображения, оно загружается из каталога thumbnails
(с использованием imageWithContentsOfFile:
вместо imageNamed:
, так как авторы утверждают, что последнее вызывает проблемы).Загруженное изображение затем сохраняется в словаре, поэтому в следующий раз, когда приложение запрашивает миниатюру, оно может использовать уже загруженный экземпляр.
Чтобы этот код работал правильно в вашем приложении, необходимо добавить thumbnails
папка для вашего проекта.При добавлении его в проект обязательно выберите «Создать ссылки на папки для любых добавленных папок» вместо значения по умолчанию «Создать группы для любых добавленных папок» .Только тогда вы получите подкаталог в основном комплекте вашего приложения, в противном случае все файлы будут помещены в одну папку верхнего уровня.
Но весь смысл заключается в том, что автор утверждает:
- Избегайте
[UIImage imageNamed:]
. - Вместо этого имейте
NSMutableDictionary
. - Поиск изображений в словаре.
- Если найдено, используйте это.
- Если не найдено, загрузите изображение, используя
[UIImage imageWithContentsOfFile:]
, чтобы вручную загрузить изображение и сохранить его в словаре.