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

eri*_*rik 2 objective-c nsmutablearray ios

我的任务是"清理"其他人的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];
Run Code Online (Sandbox Code Playgroud)

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

favoriteItemsArray = [[NSMutableArray alloc] init];
favoriteOrderArray = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

如果不能有人解释?

这不是我的代码..

Phi*_*ert 5

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