如果有的话,哪一个更有效?
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