TableView VS Память Предупреждение
Я использую xcode 5 и ios 7. Когда я прокручиваю до конца таблицы, загружаю данные асинхронно с сервера (картинка 50-100kb). После 10 попыток возникает предупреждение памяти.... Асинхронная загрузка с GCD. Как решить проблему и не потерять плавность прокрутки контента? Работал ARC с GCD?
CellCreate:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellID = [NSString stringWithFormat:@"Cell%i",indexPath.section];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
/*
First section simple text cell
Second section hard cells
*/
if(cell == nil)
{
switch (indexPath.section)
{
case 0:
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
break;
}
case 1:
{
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
break;
}
default:
{
break;
}
}
}
if (indexPath.section == 1)
{
NSInteger index = indexPath.row;
ModelInfo* model = [arrayModelInfo objectAtIndex:index];
[(CustomCell*)cell setContent:model];//Update subview in cell with parametrs model
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
CustomCell setContent
[self.CustomConentView.imageView setImage:model.image];
[self.CustomConentView.label setText:model.name];
Скачать:
NSInteger serverOffset = 0;
.....
dispatch_async(queueDownloadData, ^{
[self backgroundDownloadRecometedProducts];
});
.....
- (void) backgroundDownload
{
Network* network = [[LMNetwork alloc] init];
[network getRecomendedProductOffset:serverOffset
Success:^(id JSON) {
dispatch_async(queueDownloadData, ^{
recomentedProductsOffset += 10;
[self parse:JSON];
});
}];
}
- (void) parse: (id) JSON
{
NSArray* result = [JSON objectForKey:@"result"];
for (NSDictionary* parametrs in result)
{
ModelInfo* model = [[ModelInfo alloc] initWithDictionary:parametrs];
[arrayModelInfo addObject:model];
dispatch_async(self.queueDownloadImages, ^{
[self downloadImageForName:model.thumbnail Tag:[arrayModelInfo indexOfObject:model]];
});
}
dispatch_async(dispatch_get_main_queue(), ^{
[tableViewContent reloadData];
});
}
- (void) downloadImageForName: (NSString*) imageName Tag: (NSInteger) tag
{
Network* network = [[Network alloc] init];
[network downloadImageWithName:imageName
ImageTag:tag
Success:^(UIImage *image, NSInteger tag) {
ModelInfo* model = [arrayModelInfo objectAtIndex:tag];
model.image = image;
dispatch_async(dispatch_get_main_queue(), ^{
[tableViewContent reloadData];
});
}];
}
В почтовом запросе класса Network на сервере я использовал AFNetworking