Objective c 如何解决以下代码中的漏洞?目的

Objective c 如何解决以下代码中的漏洞?目的,objective-c,memory-leaks,nsmutablearray,Objective C,Memory Leaks,Nsmutablearray,我在这里得到泄漏,它写在appDelegate.m中 -(NSMutableArray*)getSalutationList { NSMutableArray *list=[[NSMutableArray alloc]init]; [list addObject:@"Dr."]; [list addObject:@"Mr."]; [list addObject:@"Mrs."]; [list addObject:@"Miss."]; [list a

我在这里得到泄漏,它写在appDelegate.m中

-(NSMutableArray*)getSalutationList
{
    NSMutableArray *list=[[NSMutableArray alloc]init];
    [list addObject:@"Dr."];
    [list addObject:@"Mr."];
    [list addObject:@"Mrs."];
    [list addObject:@"Miss."];
    [list addObject:@"Ms."];
    return list;    //return [list autorelease]; if i keep this  i am getting exception.
}

如何释放列表,以及我需要从view controller调用的内容。

您收到报告的泄漏,因为内存管理指南说您应该返回自动释放的对象。此外,除非您计划通过out参数提供数据,否则不应在方法名称前加上“get”

因此,您的方法应该是:

-(NSMutableArray*) salutationList {
    NSMutableArray *list=[[NSMutableArray alloc]init];
    [list addObject:@"Dr."];
    [list addObject:@"Mr."];
    [list addObject:@"Mrs."];
    [list addObject:@"Miss."];
    [list addObject:@"Ms."];
    return [list autorelease];
}

如果通过返回
[list autorelease]
得到异常,那么问题就出在其他地方(可能是在不应该释放数组的时候在其他地方释放数组?)。

如何使用
-getsallationlist
的返回值?listformAppdelegate=[appDelegate getsallaionList];此列表用于显示视图控制器中的内容。它在本地声明,不在任何地方发布。是否可以释放主列表并返回临时列表