2013-09-12 3 views
1

Любой человек может помочь мне решение этой проблемыПолучите предупреждение памяти при создании большого количества контроллеров отображения

Мой код:

NSMutableArray *listVC = [[NSMutableArray alloc] init]; 
HMScrollView *scrollView = [[HMScrollView alloc] initWithFrame:self.showView.bounds]; 

for (int i = 0; i < newsArray.count; i ++) { 
    self.theNewDetailViewController = [[NewDetailViewController alloc] initWithNibName:@"NewDetailViewController" bundle:nil]; 
    self.theNewDetailViewController.abmObj = (AboutUS_MobileService*)[newsArray objectAtIndex:i]; 

    [self.theNewDetailViewController.view setFrame:CGRectMake(2, 0, scrollView.frame.size.width-4, scrollView.frame.size.height)]; 

    [listVC addObject:self.theNewDetailViewController]; 


    [self addChildViewController:self.theNewDetailViewController]; 
    [self.theNewDetailViewController didMoveToParentViewController:self]; 
} 

[scrollView setData:listVC atIndex:index]; 
[self.showView addSubview:scrollView]; 
[self.showView bringSubviewToFront:self.imageHeader]; 

ответ

0

Ни одно устройство не имеет бесконечную емкость памяти, так что вы должны быть осторожны в вашем сценарии здесь. iOS просто говорит вам, что его низкая память. Возможно, потому, что вы выделяете слишком много памяти для своих контроллеров. Вы должны использовать профилировщик памяти инструментов, чтобы узнать, где вы тратите память. Инструменты расскажут вам, насколько велики ваши контроллеры. Затем вы можете решить, где вам нужно потратить время на оптимизацию (меньше просмотров или более легкий просмотр веса).

Считаете ли вы использование UITableView/UICollectionView для отображения этого содержимого. Используя представления таблиц и представления коллекции, вы можете отображать списки содержимого (аналогично прокручиванию), но также могут быть умны в использовании памяти с помощью трюков, таких как ленивая загрузка и повторное использование ячеек.

+0

Tks Sanjit для вашей поддержки – TuyenBQ

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