从 NSArray 创建 NSMutableArray 的最有效方法

Most efficient way to create an NSMutableArray from NSArray

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

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

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

或者这些在内部是否相同?

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

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

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

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

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