2010-11-08 2 views
0

У меня есть UIImage, который я использую во всем приложении в качестве фонового изображения для сгруппированных UITableViews.Общий UIImageView для фонового изображения в приложении - Singleton Property

Я думал, что для эффективности я бы выделил и запустил UIView с моим UIImage в своем приложении appDelegate, а затем получал доступ во всем приложении. Таким образом, я бы только выделил этот imageView один раз, и если бы я сверлялся в стек nav с несколькими табличными представлениями с этим изображением, мне не нужно было бы беспокоиться о том, чтобы освободить и восстановить изображение, когда я спускаюсь и поднимаюсь или накладываю накладные расходы на каждом шаге.

Как только я попробовал это, я заметил, что класс UITableView освобождает мой общий образ до 0, и поэтому он уходит. Делает прекрасный смысл, но мне нужно будет не допустить, чтобы изображение когда-либо попадало в 0, чтобы это сработало.

Является ли это абсолютно тупой подход?

Если это не лучший способ сохранить мой общий ImageView? Я знаю, что я мог бы называть удержание, когда я настраиваю фоновое изображение каждого вида таблицы, но мне было интересно, есть ли способ установить значение сохранения общего UIImageView на NSUIntegerMax в моем приложении appDelegate. Ранее я устанавливал классы singleton, но в этом случае я пытаюсь создать одно свойство, которое никогда не будет выпущено, а не создавать подклассы singleton UIImageView.

Извините, если это немного запутано и спасибо за любые указатели.

ответ

2

Я бы не стал беспокоиться, так как + (UIImage *)imageNamed:(NSString *)name хранится в кэше. Из спецификации:

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

+0

спасибо. Как всегда, преждевременная оптимизация, основанная на инстинкте, а не в ответ на проблемы, оказывается опасной. – Nick

Смежные вопросы