我的任务是“清理”其他人的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];

如果没有人可以解释?

再次,这不是我的代码。

最佳答案

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

10-04 13:54