Mon*_*olo 13 cocoa objective-c
假设我有一个这样的数组:
NSArray *threeDimensionalArray = @[
@[
@[ @"Peter", @"Paul", @"Mary" ], @[ @"Joe", @"Jane" ]
],
@[
@[ @"Alice", @"Bob" ]
]
];
Run Code Online (Sandbox Code Playgroud)
我希望它成为:
@[ @"Peter", @"Paul", @"Mary", @"Joe", @"Jane", @"Alice", @"Bob" ]
Run Code Online (Sandbox Code Playgroud)
我怎样才能最轻松地创建这个扁平阵列?
Mon*_*olo 27
键值编码(KVC)集合运算符展@unionOfArrays平了一个级别的数组,因此应用它两次会产生所需的结果.
集合运算符(除了@count)需要一个到集合属性的键路径,因为我们的对象本身已经是数组(因此也是集合),所以键路径必须是self.
因此,我们需要对键路径应用@unionOfArrays两次self,产生以下KVC调用以展平3D数组:
NSArray *flattenedArray = [threeDimensionalArray valueForKeyPath: @"@unionOfArrays.self.@unionOfArrays.self"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |