22

我有一个这样的数组:

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"
)

我怎样才能做到这一点?是否可以组合所有对象并使用一些字符串将它们分开?

4

4 回答 4

113

如果您喜欢键值编码 (KVC),它可以在一行中完成。收集@unionOfArrays操作员完全符合您的要求。

你可能以前在谓词、绑定和类似的地方遇到过 KVC,但它也可以在普通的 Objective-C 代码中调用,如下所示:

NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self"];

KVC 中还有其他的集合运算符,都以@符号为前缀,如此所述。

于 2013-06-13T15:47:13.670 回答
6

示例代码:

NSMutableArray *mainArray = [[NSMutableArray alloc] init];
for (int i = 0; i < bigArray.count ; i++)
{
     [mainArray addObjectsFromArray:[bigArray objectAtIndex:i]];
}
NSLog(@"mainArray :: %@",mainArray);
于 2013-06-13T12:50:15.873 回答
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:@","]);
于 2013-06-13T12:58:59.693 回答
-1
NSMutableArray *arr1 = [NSMutableArray arrayWithArray:[initialArray objectAtIndex:0]];
[arr1 addObjectsFromArray:[initialArray objectAtIndex:1]];

现在 arr1 包含所有对象

于 2013-06-13T12:49:25.383 回答