在我的pgm中,我在此段中收到泄漏警告。
- (NSMutableArray *)filterArrayForBank:(NSMutableArray *)originalArray withKey:(NSString *)key { NSMutableArray * mutableArray = [[NSMutableArray alloc] init];
for (int i=0; i<[originalArray count]>0; i++) {
if([[[originalArray objectAtIndex:i]objectForKey:@"transType"] isEqualToString:key]){
[mutableArray addObject:[originalArray objectAtIndex:i]];
}
}
//////NSLog(@"mutableArray %@",mutableArray);
return mutableArray ;
}
如果我通过下面的线阻止此泄漏,应用程序崩溃
任一 return [mutableArray autorelease];
或
NSMutableArray * mutableArray = [[[NSMutableArray alloc] init] autorelease];
请帮助我阻止这种泄漏。 提前谢谢。
答案 0 :(得分:1)
如果返回自动释放的数组,则需要确保将其保留在调用方法中。但是,如果您未将其保留在调用方法中,请尝试将该方法重命名为:
-(NSMutableArray *)newFilterArrayForBank:(NSMutableArray *)originalArray withKey:(NSString *)key
这将通知编译器您正在分配新的NSMutableArray。