我有一个这样的数组:
array: (
(
"http://aaa/product/8_1371121323.png",
"http://aaa/product/14_1371123271.png"
),
(
"http://aaa/product/9_1371121377.png"
)
)
我必须从这个
创建另一个数组array: (
"http://aaa/product/8_1371121323.png",
"http://aaa/product/14_1371123271.png",
"http://aaa/product/9_1371121377.png"
)
我该怎么做?是否可以组合所有对象并使用一些字符串将它们分开?
答案 0 :(得分:111)
如果您喜欢键值编码(KVC),可以在一行中完成。 @unionOfArrays
集合运算符完全符合您的要求。
您可能在谓词,绑定和类似的地方遇到过KVC,但它也可以在普通的Objective-C代码中调用,如下所示:
NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self"];
KVC中还有其他收集操作符,所有操作符都以@
符号为前缀。 docs中有更多关于它的内容。
答案 1 :(得分:6)
示例代码:
NSMutableArray *mainArray = [[NSMutableArray alloc] init];
for (int i = 0; i < bigArray.count ; i++)
{
[mainArray addObjectsFromArray:[bigArray objectAtIndex:i]];
}
NSLog(@"mainArray :: %@",mainArray);
答案 2 :(得分:1)
示例代码:
NSArray* arrays = @(@(@"http://aaa/product/8_1371121323.png",@"http://aaa/product/14_1371123271.png"),@(@"http://aaa/product/9_1371121377.png"));
NSMutableArray* flatArray = [NSMutableArray array];
for (NSArray* innerArray in arrays) {
[flatArray addObjectsFromArray:innerArray];
}
NSLog(@"%@",[flatArray componentsJoinedByString:@","]);
答案 3 :(得分:-1)
NSMutableArray *arr1 = [NSMutableArray arrayWithArray:[initialArray objectAtIndex:0]];
[arr1 addObjectsFromArray:[initialArray objectAtIndex:1]];
现在arr1包含所有对象