Нужно ли выпускать NSMutableDictionary в этом случае? - PullRequest
0 голосов
/ 23 сентября 2011

Нужно ли мне выпускать dictCellCollectionIndividual в этом случае?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

... ...
... ...
... ...

    // Local declaration of dictCellCollectionIndividual
    NSMutableDictionary *dictCellCollectionIndividual;

    // Copy the specific dictionary from dictCellCollection to dictCellCollectionIndividual. dict CellCollection is declared elsewhere.
    dictCellCollectionIndividual = [dictCellCollection objectForKey:[NSString stringWithFormat:@"%@", [arrayCellCollectionOrder objectAtIndex:indexPath.row]]];

... ...
... ...
... ...

// Do I need to release?
[dictCellCollectionIndividual release];

return cell;

}

Не увеличивает ли использование objectForKey счет удержания?Разве я не должен выпускать это?

Заранее спасибо.

1 Ответ

0 голосов
/ 23 сентября 2011

Нет, он просто возвращает указатель на объект, содержащийся в словаре;если вы планируете хранить объект в течение какого-то периода времени, вам нужно взять его в собственность, чтобы объект оставался действительным, если NSDictionary будет освобожден в это время.В этом случае вам нужно будет либо release, либо autorelease объект, когда вы закончите с ним.Если вы планируете использовать его только как временное значение (скажем, в качестве аргумента для вызова NSLog), вероятно, нет необходимости сохранять объект и, следовательно, нет необходимости освобождать его.

...