почему это утечка памяти?

#objective-c #memory-leaks

#objective-c #утечки памяти

Вопрос:

получил это предупреждение об утечке памяти в следующем…

есть идеи?

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger row = [indexPath row];

    UITableViewCell *cell = [self newOrReusableCell];


    cell.textLabel.text = [_evaluationArray objectAtIndex:row];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    return cell;

}
  

Спасибо

РЕДАКТИРОВАТЬ: вот предупреждение: … Объект, выделенный в строке 128 и сохраненный в ‘cell’, возвращается из метода, имя которого (‘TableView:cellForRowAtIndexPath:’) не содержит ‘copy’ или иным образом начинается с ‘new’ или ‘alloc’. Это нарушает правила соглашения об именовании, приведенные в руководстве по управлению памятью для Cocoa (утечка объекта)

Комментарии:

1. Какой компилятор вы используете?? Это лучшее предупреждение компилятора, которое я когда-либо видел: O

2. @Wevah Я всегда использую Clang, но я никогда не видел такого предупреждения.

3. @Radek S: Вы используете статический анализатор? (Упс: не сам компилятор.)

Ответ №1:

ах! забудьте об этом! нашел ответ .. так я назвал свою ячейку…

Комментарии:

1. Проблема в том, что метод начинается с new , что в стандартных соглашениях об именовании Obj-C означает, что метод возвращает сохраненный объект.