Самое важное, что вам нужно знать для управления памятью, в этом случае - использовать ли текстуры с высоким или низким разрешением.Простейший способ, которым я пользуюсь, - это проверить
CGFloat scale = [[UIScreen mainScreen] scale];
if ((scale > 1.0) || (self.view.frame.size.width > 320)) {
highRes = TRUE;
}
. Пока это работает для всех устройств и должно быть ориентировано на будущее, более новые устройства будут использовать высокое разрешение.Вы также можете сразу рассчитать соотношение сторон (это поможет позже на ipad против iphone)
aspect = self.view.frame.size.width/self.view.frame.size.width
Не загружайте высокое разрешение, сначала это убивает время загрузки ваших приложений, в моем 3G большая часть моего запуска тратится на загрузку (даже текстуры с низким разрешением), просто проверьте это в самом начале и не трогайте материал с высоким разрешением.
На старых устройствах программа умрет без предупреждения из-за больших текстур, может иметь какое-то отношение кОтладчик не может перехватить потребление видеопамяти и умирать сам.
Для большей оптимизации рассмотрите возможность раскраски мипмапов, чтобы проверить минимальный размер текстуры, который фактически используется (только если вы используете 3D-объекты).
Забудьте о проблеме с размером видеопамяти, память фактически распределяется, поэтому вы боретесь за системную память, на старых устройствах у вас было ограничение на использование в МБ, но это все еще системная память.
Об управлении памятьюЕсть много способов сделать это, самый простой должен отметить текстуры, которые загружены, и текстуры, которыекогда появляется предупреждение о памяти, нужно сбросить текстуры, которые загружены, но не нужны ...