Ошибка приложения на iPhone

Я разрабатываю игру, в которой мне приходится загружать изображения на пальцах. for ( int i = 0 ; i <= totalNoofPages ; i ++) { NSString * graphicsFileName = @ "Страница" ; graphicsFileName = [ graphicsFileName stringByAppendingString : [ NSString stringWithFormat : @ "% d" , i ]]; UIImage * изображение = [[ UIImage Alloc ] initWithContentsOfFile : [[ NSBundle mainBundle ] pathForResource : graphicsFileName ofType : @ "jpg" ]]; GraphicsImages = [[ UIImageView Alloc ] initWithFrame : CGRectMake ( 0 , 0 , 480 , 320 )]; GraphicsImages . image = изображение ; [ освобождение изображения ]; [ GraphicsImages setCenter : центр ]; GraphicsImages . transform = CGAffineTransformMakeRotation ( M_PI / 2 ); [ graphicsArray insertObject : GraphicsImages atIndex : i ]; } я загрузил все изображение 22 размера (788x525) при загрузке самого представления. Затем на пальце салфетки я просто добавил изображение на просмотр.

Это отлично работает на iTouch, но в случае сбоев iPhone после появления около 12 изображений.

Вот как я добавил изображения, graphicsArray - NSMUTableArray.

GraphicsImages = [graphicsArray objectAtIndex:pageNo];
[self addSubview:GraphicsImages];

и на пальце салфетки я пишу, pageNo номер страницы, который будет отображаться.

GraphicsImages

Есть ли способ выпустить предыдущее загруженное изображение из подвидного представления, поскольку оно может храниться в стеке или связано с большим размером изображения ????

Пожалуйста, помогите мне в этой ситуации.

Заранее спасибо.

С уважением, Вишал.

iphone,

0

Ответов: 2


0

Вы рушитесь из-за недостатка памяти?

Вы можете попробовать предварительно загрузить предыдущие, текущие и последующие изображения и выпустить их как можно скорее. Загрузка 22 изображений в память занимает довольно много места.


0

Можете ли вы предоставить ошибку, которую вы получаете при сбое приложения? Знание того, какое исключение запускается, очень поможет в определении того, что происходит.

Я могу сказать, что вы не выпускаете forпеременную в своем forцикле, так что это вызывает утечку памяти. Я полагаю, что этого недостаточно, чтобы вызвать крушение. В любом случае, сделайте следующее:

[ graphicsArray insertObject:GraphicsImages ];
[ GraphicsImages release ];

Обратите внимание, что вам не нужно указывать индекс вставки в вашем случае, потому что элементы будут добавляться последовательно. Кроме того, когда вы вставляете объект в массив, это значит retained, что вы можете спокойно освободить его впоследствии.

iphone,
Похожие вопросы
Яндекс.Метрика