NSMutableArray * arrayTest;
-(void) setContent
{
//must I call [array removeAllObjects]; ?
arrayTest = [[NSMutableArray alloc] init]
[arrayTest addObject:@"str"];
...//add many objects
}
我在不同的代码片段中调用此函数。我之前是否需要删除arrayTest的AllObjects,然后每次为arrayTest分配内存?我用ARC。 每次调用此函数时,我都不希望我的应用程序内存增加。
答案 0 :(得分:3)
不,你有什么好。您无需在ARC或非ARC下拨打removeAllObjects
。
当旧数组被释放时,它将负责释放旧数组中的所有对象。
答案 1 :(得分:1)
在分配内存之前检查arrayTest是否存在。如果不这样做,每次调用该方法时都会有一个新数组(假设你想保持数组及其内容一段时间)。或者甚至更好..将alloc移动到类的init中。
-(void) setContent
{
if(!arrayTest){
arrayTest = [[NSMutableArray alloc] init];
}
[arrayTest addObject:@"str"];
...//add many objects
}