Ответ 1
Пример кода:
NSMutableArray *mainArray = [[NSMutableArray alloc] init];
for (int i = 0; i < bigArray.count ; i++)
{
[mainArray addObjectsFromArray:[bigArray objectAtIndex:i]];
}
NSLog(@"mainArray :: %@",mainArray);
У меня есть такой массив:
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"
)
Как я могу это сделать? Можно ли объединить все объекты и разделить их с помощью некоторой строки?
Пример кода:
NSMutableArray *mainArray = [[NSMutableArray alloc] init];
for (int i = 0; i < bigArray.count ; i++)
{
[mainArray addObjectsFromArray:[bigArray objectAtIndex:i]];
}
NSLog(@"mainArray :: %@",mainArray);
Это может быть сделано в одной строке, если вам нравится кодирование значения ключа (KVC). @unionOfArrays
коллекции @unionOfArrays
делает именно то, что вы ищете.
Возможно, вы встречали KVC раньше в предикатах, привязках и подобных местах, но его также можно вызывать в обычном коде Objective-C, например:
NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self"];
В KVC есть другие операторы коллекции, все с префиксом @
, как обсуждалось здесь.
Пример кода:
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:@","]);
NSMutableArray *arr1 = [NSMutableArray arrayWithArray:[initialArray objectAtIndex:0]];
[arr1 addObjectsFromArray:[initialArray objectAtIndex:1]];
Теперь arr1 содержит все объекты