2010-01-11 5 views
2

Как исправить утечку здесь?Я не знаю, как исправить утечку

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { 
if(searching){  
    return nil; 
} 

NSMutableArray *tempArray = [[NSMutableArray alloc] init]; 
[tempArray addObject:UITableViewIndexSearch]; 
[tempArray addObject:@"A"]; 
[tempArray addObject:@"B"]; 
[tempArray addObject:@"C"]; 
[tempArray addObject:@"D"]; 
[tempArray addObject:@"E"]; 
[tempArray addObject:@"F"]; 
[tempArray addObject:@"G"]; 
[tempArray addObject:@"H"]; 
[tempArray addObject:@"I"]; 
[tempArray addObject:@"J"]; 
[tempArray addObject:@"K"]; 
[tempArray addObject:@"L"]; 
[tempArray addObject:@"M"]; 
[tempArray addObject:@"N"]; 
[tempArray addObject:@"O"]; 
[tempArray addObject:@"P"]; 
[tempArray addObject:@"Q"]; 
[tempArray addObject:@"R"]; 
[tempArray addObject:@"S"]; 
[tempArray addObject:@"T"]; 
[tempArray addObject:@"U"]; 
[tempArray addObject:@"V"]; 
[tempArray addObject:@"W"]; 
[tempArray addObject:@"X"]; 
[tempArray addObject:@"Y"]; 
[tempArray addObject:@"Z"]; 

return tempArray; 
} 

Любая помощь будет оценена по достоинству.

Sam

ответ

5

Вы должны быть возвращающий autoreleased объект:

return [tempArray autorelease]; 
+0

приветствия, которые исправили эту конкретную проблему .. теперь, чтобы исправить остальные. * sigh * –

-4

Когда вы получаете temparray, отпустите ее, когда делается вызовом

[#<your var># release]; 

, чтобы решить вашу утечку. Автореферат будет работать, но вам нужно будет установить пул NSAutoRelease и слить его после того, как вы сделаете это, чтобы предотвратить фактическую утечку (поскольку в начале единственный пул авторесурсов находится в основном(), поэтому программа не будет выпущена до тех пор, пока программа все равно завершается).

+1

Основной() пул авторезистов сливается в каждом цикле запуска, а не в конце программы. – gcamp

+0

Да, автовыпуск сливается в цикле запуска. (или когда программа нуждается в этом, я считаю) –

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