我的任务是"清理"别人的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];
如果没有,有人可以解释吗?
这又不是我的代码..
答案 0 :(得分:5)
你是对的。您可以删除代码的第一部分(如果ARC用于引用计数)。重新分配数组时,前一个数组将被释放,因为保留计数将达到零,并且数组中的所有对象也将被释放。