从NSArray

时间:2015-06-06 13:25:31

标签: objective-c cocoa cocoa-touch nsmutablearray nsarray

其中哪一项(如果有的话)效率更高?

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

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

或者内部是否相同?

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

使用ARC时,您的示例没有区别。但是如果您使用NSArray变量而不是静态@ [@ 1,@ 2],如果此数组为nil,则第一个将返回空数组,第二个将返回nil。