将带有字典的数组添加到Objective-C中的另一个数组

时间:2014-04-09 11:45:25

标签: objective-c nsmutablearray

我想将包含Dictionary的Array添加到另一个Array。所以第一个数组包含几个项目,每个项目由4个键/值对组成。现在我想将第一个数组添加到第二个位置[i,1](所以第二个数组将是一个三维数组?)。我怎样才能做到这一点?

这是我的代码:

NSMutableArray *routenArray = [[NSMutableArray alloc] init];
NSMutableArray *firstArray = [[NSMutableArray alloc] init];

NSDictionary *firstDict = [NSDictionary dictionaryWithObjectsAndKeys:abfahrt,@"Abfahrt", ankunft, @"Ankunft", dauer, @"Dauer", route, @"Route", nil];  
[firstArray addObject:firstDict];

for (int i = 0; i < firstArray.count; i++) {
    routenArray [i][1] = firstArray [i];
}

2 个答案:

答案 0 :(得分:1)

你知道,你真的需要学习“3D”数组的基础知识,一般还需要学习数组/ NSMutableArrays。

从根本上说,您使用 addObject 将项目添加到NSMutableArray。

您的问题的答案是您使用 addObject 将对象添加到“外部”数组。

你添加的东西,本身就可以是复杂的数据对象,比如阵列 - 就像你在想的那样,它就是“3D”部分。

要访问NSArray(或NSMutableArray)的元素,请使用 firstObject,lastObject或objectAtIndex

(你不使用大括号[1] [17]。)

我鼓励您阅读有关Xcode的NSArray的一些基本教程。

点击“勾号”标记将我的答案标记为正确,关闭此问题。然后,忘了你曾经问过这个问题:)阅读一些教程,然后询问有关NSArray的新特定问题。同时在这里搜索1000个示例和QA。


您可能正在寻找 addObjectsFromArray

一般来说要解决这样的问题。

转到Dock中获取问题所涉及的最高级别,在本例中为NSMutableArray ......

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

无论你多么有经验,你总能在那里找到惊人的东西。只需阅读您可以使用的每种方法;通常你会找到你想要的东西。

在这种情况下, addObjectsFromArray 是您上面的礼物。接下来,在这个网站上搜索 addObjectsFromArray ,你会发现很多很棒的示例代码和其他偶然事件。

干杯!

答案 1 :(得分:0)

没有“三维数组”。有NSArray(和NSMutableArray),它们包含对象。由于NSArray和NSDictionary本身就是对象,因此NSArray可以包含另一个NSArray,它可以包含另一个NSArray。这不会使它成为三维的。而这就是你的问题所在:“routenArray”(混合物是什么,deutsche und englische Namen?)不包含任何对象。 routenArray [0]是零。

你在写什么:

routenArray [i][1] = firstArray [i];

只是

的快捷方式
[[routenArray objectAtIndex:i] replaceObjectAtIndex:1 withObject:[firstArray objectAtIndex:i]];

所以这不是你认为的那样。