Objective c 如何解决以下代码中的漏洞?目的
我在这里得到泄漏,它写在appDelegate.m中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
-(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];此列表用于显示视图控制器中的内容。它在本地声明,不在任何地方发布。是否可以释放主列表并返回临时列表