Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从NSArray创建NSMutableArray的最有效方法_Objective C_Cocoa_Cocoa Touch_Nsmutablearray_Nsarray - Fatal编程技术网

Objective c 从NSArray创建NSMutableArray的最有效方法

Objective c 从NSArray创建NSMutableArray的最有效方法,objective-c,cocoa,cocoa-touch,nsmutablearray,nsarray,Objective C,Cocoa,Cocoa Touch,Nsmutablearray,Nsarray,其中哪一个更有效 NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @2]]; 或 或者这些在内部是相同的?使用ARC时,在您的示例中没有区别。但是,如果您使用NSArray变量而不是静态@[@1,@2],如果此数组为nil,则第一个数组将返回空数组,第二个数组将返回nil。使用ARC时,您的示例中没有区别。但是如果您使用NSArray变量而不是static@[@1,@2],如果此数组为零,第一个数组将返回空数组,第二个数

其中哪一个更有效

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


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

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

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

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

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

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

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

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

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

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

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

它们内部相同吗?它们内部相同吗?