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
。它们内部相同吗?它们内部相同吗?