Objective-C NSMutableArray在已声明的Object上分配init

时间:2014-07-28 19:25:18

标签: ios objective-c nsmutablearray

我的任务是"清理"别人的Objective-C代码。我承认,这肯定不是我最喜欢的语言。

我在这个用户代码中发现的一种方法对我来说似乎是多余的:

if (favoriteItemsArray || [favoriteItemsArray count] > 0) {
    [favoriteItemsArray removeAllObjects];
    favoriteItemsArray = nil;
}

if (favoriteOrderArray || [favoriteOrderArray count] > 0) {
    [favoriteOrderArray removeAllObjects];
    favoriteOrderArray = nil;
}

favoriteItemsArray = [[NSMutableArray alloc] init];
favoriteOrderArray = [[NSMutableArray alloc] init];

我想和大家仔细检查一下,看看我是否过于习惯JAVA,但是这段代码不能简化为最后两行而只是说:

favoriteItemsArray = [[NSMutableArray alloc] init];
favoriteOrderArray = [[NSMutableArray alloc] init];

如果没有,有人可以解释吗?

这又不是我的代码..

1 个答案:

答案 0 :(得分:5)

你是对的。您可以删除代码的第一部分(如果ARC用于引用计数)。重新分配数组时,前一个数组将被释放,因为保留计数将达到零,并且数组中的所有对象也将被释放。