从 NSArray 创建 NSMutableArray 的最有效方法
Most efficient way to create an NSMutableArray from NSArray
如果有的话,哪一个效率更高?
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @2]];
或
NSMutableArray *array = [@[@1, @2] mutableCopy];
或者这些在内部是否相同?
使用 ARC 时,您的示例没有任何区别。但是如果你使用 NSArray 变量而不是静态的@[@1, @2],在这个数组为 nil 的情况下,第一个将 return 为空数组,第二个将 return 你为 nil。
您提供的两个选项都是先创建一个 NSArray
,然后从 NSArray
创建一个 NSMutableArray
,因此本质上没有区别。
在这种情况下,还有第三种选择会稍微好一点:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, nil];
这不会像您的其他两个选项那样创建中间 NSArray
。
如果有的话,哪一个效率更高?
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @2]];
或
NSMutableArray *array = [@[@1, @2] mutableCopy];
或者这些在内部是否相同?
使用 ARC 时,您的示例没有任何区别。但是如果你使用 NSArray 变量而不是静态的@[@1, @2],在这个数组为 nil 的情况下,第一个将 return 为空数组,第二个将 return 你为 nil。
您提供的两个选项都是先创建一个 NSArray
,然后从 NSArray
创建一个 NSMutableArray
,因此本质上没有区别。
在这种情况下,还有第三种选择会稍微好一点:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, nil];
这不会像您的其他两个选项那样创建中间 NSArray
。