2011-09-22 2 views
0

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

- (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 увеличения удержания счета? Разве я не должен его выпускать?

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

ответ

0

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

Смежные вопросы