Я создаю UItableView с пользовательскими ячейками, которые отображают изображения. Проблема в том, что при прокрутке вниз предыдущие ячейки, похоже, не делают dealloc, и память устройства заполняется.UITableView Cells do doalloc
Это мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
CustomTableCellView *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[CustomTableCellView alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:simpleTableIdentifier];
}
Article *tempArticle = [_objects objectAtIndex:indexPath.row];
cell.titel.text = tempArticle.title;
cell.subTitle.text = tempArticle.subTitle;
cell.category.text = tempArticle.category;
if(tempArticle.imageUrl){
[cell.image setImageWithURL:[NSURL URLWithString:tempArticle.imageUrl]];
} else {
cell.image.image = [UIImage imageNamed:@"video"];
}
return cell;
}
Клетки не освобождаются от вида таблицы, потому что они повторно используются. Если вы поместите контрольную точку внутри своего 'if', вы заметите, что после начальной загрузки она больше не останавливается там, потому что таблица может деактивировать существующую ячейку. Проблема, скорее всего, в другом месте. –
Вы предполагаете, что ячейки не освобождаются. Запустите приложение с помощью инструментов и сделайте пару снимков памяти, чтобы точно определить, какие объекты используют память. – Abizern
Хорошо, я понял, что он используется повторно, но почему он заполняет память? – Verendus