У меня есть два tableviewcell в файле xib, и я использую их оба.Память warrning tableviewcell
Когда я использую один из них, память по-прежнему составляет 7,3 МБ, но когда я использую обе памяти, они растут очень быстро.
Пожалуйста, помогите мне. Я не сейчас, что не так.
Мой код ниже:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSUInteger row = [indexPath row];
NSDictionary *rowData = [self.events objectAtIndex:row];
static NSString *CellIdentifierL = @"LeftCell";
static NSString *CellIdentifierR = @"RightCell";
SampleTableCell *cellLeft = [tableView dequeueReusableCellWithIdentifier:CellIdentifierL];
SampleTableCell *cellRight = [tableView dequeueReusableCellWithIdentifier:CellIdentifierR];
if (cellLeft == nil) {
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"LeftTableCell" owner:self options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[SampleTableCell class]]) {
cellLeft = (SampleTableCell *)currentObject;
break;
}
}
}
if (cellRight == nil) {
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"RightTableCell" owner:self options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[SampleTableCell class]]) {
cellRight = (SampleTableCell *)currentObject;
break;
}
}
}
return (row%2==0)?cellRight:cellLeft;
}
Вы проверили свой отчет о сбое памяти или журнал интрументов, потому что ваш код выглядит прекрасным, что вы делаете с ячейкой, есть еще несколько вещей, которые у вас остались? Думаю, – Retro
Я не вижу проблемы в этом фрагменте кода. Когда растет площадь памяти? Прокручивая представление таблицы? –
Две теории: 1- Вы уверены, что ваш 'SampleTableCell' имеет правильный reusableCellIdentifier? (проверьте, что в вашем xib) Если нет, это означает, что вы создаете слишком много строк. 2- Вы должны определить, какую ячейку вы должны создать, прежде чем создавать их. Однако это имеет значение только для первых творений клеток. –