目标C语言 从NSArray创建NSMutableArray的最有效方法



如果有的话,哪一个更有效?

NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @2]];

NSMutableArray *array = [@[@1, @2] mutableCopy];

还是它们内部相同?

您提供的两个选项都首先创建一个NSArray,然后从NSArray创建一个NSMutableArray,因此本质上没有区别。

在这种情况下,还有第三个选项会稍微好一点:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, nil];

这不会像其他两个选项那样创建中间的NSArray

在使用ARC时,在您的示例中没有区别。但如果你使用NSArray变量而不是静态的@[@1,@2]在这个数组为nil的情况下第一个会返回空数组第二个会返回nil

最新更新