В настоящее время я разрабатываю iPhone-игру с множеством анимаций с использованием последовательностей изображений (jpg и png с прозрачными пленками). Используя инструменты для просмотра утечек и распределения объектов, я видел, что распределение объектов увеличивается до менее 500 тыс. Тем не менее, программа по-прежнему падает и неожиданно выходит из игры, когда мы переключаемся с одного уровня игры на другой. Это ненормально? Из того, что я читал, iPhone имеет 128 Мб памяти.Проблема с памятью с анимированными играми iPhone с использованием последовательностей изображений
Дополнительная информация: Мы используем CAKeyFrameAnimation (по рекомендации Apple) и imageNamed (чтобы изображения были предварительно кэшированы). В каждом объекте Level я вижу, что dealloc вызывается, когда я меняю один уровень и загружаю другой. Однако память, похоже, продолжает расти и подниматься и никогда не возвращается к исходному уровню. = (
Я заметил в утечке, что использование памяти не сразу падает после выпуска UIImage. Может быть, есть внутренний кеш или что-то еще? Мне любопытно это выяснить. –
Да, команда imageNamed должна кэшировать изображение, и это наша желаемая функциональность. Но умирать в 500 тыс. Кажется мне неправдой. Также было бы неплохо, если бы UIImages были полностью очищены после того, как мы выгрузили уровень. Как вы делаете анимацию в своем коде (если есть). Мы использовали свойство animationImages для UIImageView, но затем Apple сообщила, что это было ошибкой и никогда не было выпущено изображений. Они посоветовали нам использовать CAKeyframeAnimation. –
На самом деле я не занимаюсь анимацией - просто показываю довольно большие изображения, загруженные из Интернета. На самом деле, я создаю образы с помощью imageWithData :, а не imageNamed:, поэтому я удивлен, что он делает любое кэширование в моем случае. –