У меня есть запрос на проектирование относительно того, как должна быть настроена ячейка, если у меня есть переменное количество меток, которые будут добавлены к представлению содержимого ячейки. Например, для ячейки 1 мне нужно 2 ярлыка, а для ячейки 2 мне нужно 5 ярлыков и т. Д.
Как я могу добавить это к моей настройке ячейки наиболее эффективным способом? Пытаюсь ли я пройти через массив объектов, чтобы определить и установить количество меток в «cell = nil», или сделать это вне цикла?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* PlaceholderCellIdentifier = @"PlaceholderCell";
int row = [indexPath row];
CustomCell* cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier];
if (cell == nil)
{
cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:PlaceholderCellIdentifier] autorelease];
//Do I create the labels here by looping through the array?
[cell setupCell];
}
//Or do I create them here instead??
[cell loadContentAndHeight];
return cell;
}
В настоящее время я не делаю создание меток в цикле 'cell = nil', вместо этого все создание (alloc / init) меток выполняется вне цикла.
for(SomeClass *instance in someObjectArray)
{
OHAttributLabel *label = [[OHAttributeLabel alloc]initWith........
[cell.contentview addsubview:label];
}
Проблема здесь в том, что в инструменте выделения (в инструментах) я заметил, что retainCount моего ярлыка продолжает увеличиваться (см. Скриншот). Я считаю, что это связано с тем, что я создаю новые ярлыки каждый раз, когда ячейка используется повторно.
Я верю, что в долгосрочной перспективе это повлияет на производительность моей прокрутки таблицы. Может кто-нибудь посоветовать мне наиболее эффективный способ реализации переменного числа меток в ячейке?
РЕДАКТИРОВАТЬ: Добавлен скриншот утечки инструмента
Я проверил инструмент утечки, и он не показывает, где я просачиваюсь в коде таблицы. Все предметы утечки не имеют отношения к столу, который меня интересует. Это способ, которым я использую инструмент?