其中哪一项(如果有的话)效率更高?
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @2]];
或
NSMutableArray *array = [@[@1, @2] mutableCopy];
或者内部是否相同?
答案 0 :(得分:4)
您提供的两个选项首先创建NSArray
,然后从NSMutableArray
创建NSArray
,因此基本上没有区别。
在这种情况下,第三种选择会稍微好一些:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, nil];
这并不像其他两个选项那样创建中间NSArray
。
答案 1 :(得分:0)
使用ARC时,您的示例没有区别。但是如果您使用NSArray变量而不是静态@ [@ 1,@ 2],如果此数组为nil,则第一个将返回空数组,第二个将返回nil。