我不知道如何修复泄漏

时间:2010-01-11 09:34:01

标签: iphone

如何在这里修复泄漏?

-(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;
}

任何帮助将不胜感激。

萨姆

2 个答案:

答案 0 :(得分:5)

您应该返回一个自动释放的对象:

return [tempArray autorelease];

答案 1 :(得分:-4)

当你得到temparray时,通过调用

完成释放
[#<your var># release];

解决您的泄漏问题。自动释放将起作用,但是你需要设置一个NSAutoRelease池并在完成后将其耗尽以防止事实上的泄漏(因为开始时唯一的自动释放池在main()中,所以程序将不会释放,直到程序无论如何都退出了。)