2012-04-24 4 views
0

У меня есть разные изображения для портретной и альбомной ориентации, я извлекаю изображения из каталога Document, их в общей сложности 62 изображения. 31 Пейзажные изображения с размерами 1015x745 и 31 Портрет с размерами 751x1024. Все загрузки изображений на симуляторе, но когда я запускаю один и тот же код в устройстве, сбой приложения. Он загружает только портрет на пейзажные изображения.Загрузка изображений в каталог UIScroll из каталога документов

int porWidth = 768, lanWidth = 1024; 
int i=0; 
    for (CatalogIndividuals *cat in self.array) 
    { 
     UIImageView *imageView1 = [[[UIImageView alloc] initWithFrame:CGRectMake(porWidth*i +5, 0, 757, 964)] autorelease]; 
     imageView1.tag = porImage+i; 

     NSString *fullPath =[self.documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",cat.portraitImage]]; 

     imageView1.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:[fullPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"]]]; 
     imageView1.contentMode = UIViewContentModeScaleAspectFit; 

     UIImageView *imageView2 = [[[UIImageView alloc] initWithFrame:CGRectMake(lanWidth*i +5, 0, 1015, 620)] autorelease]; 
     imageView2.tag = lanImage+i; 

     NSString *tempPath = [self.documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",cat.landscapImage]]; 
     NSString *str = [tempPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"]; 

     NSLog(@"imageView1 fullPath = %@",str); 
     imageView2.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:str]];} 

Я думаю, что есть проблема с утечкой памяти. пожалуйста, помогите, если у кого-нибудь есть какое-либо решение.

+0

Вы сохраняете эти изображения в каком-либо объекте данных/словаре/массиве? Можете ли вы добавить еще один код этого цикла. – rishi

+0

Джим очень прав, во время работы ограниченное количество памяти присутствует с приложением. – rishi

+0

Мы сохраняем всю ссылку на изображение в массиве, а затем извлекаем изображения из каталога документов. –

ответ

2

Это около 350 МБ изображений. У вас нет утечки памяти, вы просто используете слишком много памяти. Это мобильное устройство, а не настольный компьютер, доступные вам ресурсы ограничены.

Нельзя загружать сразу все изображения, вы должны загружать их динамически при прокрутке содержимого. Взгляните на пример кода, который Apple предоставляет для UIScrollView, чтобы узнать, как вы можете использовать плитки для достижения этой цели.

+0

Спасибо, попробуем. но если у вас есть образец кода, пожалуйста, поделитесь со мной. –

+0

Пример кода находится в библиотеке разработчика. – Jim

+0

, пожалуйста, укажите ссылку образца кода. Я нашел образец кода «Прокрутка» из библиотеки разработчиков. В этом коде используются только пять изображений, и мы будем использовать один и тот же код, но не найдем никакого решения. –

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