Изменить февраль 2014: Обратите внимание, что этот вопрос задан с iOS 2.0! Требования к изображениям и обработка с тех пор сильно изменились. Retina делает изображения более крупными и загружает их немного сложнее. Со встроенной поддержкой IPad и изображений сетчатки вы обязательно должны использовать ImageNamed в своем коде.
Я вижу, что многие люди говорят, что imageNamed
плохо, но равное количество людей, говорящих, что производительность хорошая - особенно при рендеринге UITableView
s. См. этот вопрос SO или в этой статье на iPhoneDeveloperTips.com
UIImage
imageNamed
метод, используемый для утечки, поэтому его лучше избегать, но исправлено в последних выпусках. Я хотел бы лучше понять алгоритм кеширования, чтобы обоснованное решение о том, где я могу доверять системе, чтобы кэшировать мои изображения и где мне нужно пройти лишнюю милю и сделать это самостоятельно. Мое настоящее основное понимание состоит в том, что это простой NSMutableDictionary
of UIImages
, на который ссылается имя файла. Он становится больше, и когда память заканчивается, он становится намного меньше.
Например, кто-нибудь точно знает, что кеш изображения за imageNamed
не отвечает на didReceiveMemoryWarning
? Кажется маловероятным, что Apple этого не сделает.
Если у вас есть понимание алгоритма кэширования, отправьте его здесь.