将数组添加到另一个数组的第二列

时间:2014-03-11 20:57:59

标签: ios objective-c arrays multidimensional-array

我是目标C的新人。我有一个问题列表,每个问题都有多个答案,所以我需要一个包含另一个带有问题编号的数组的数组,然后是一组答案。< / p>

我有一个NSMutableArray,我用这一行来实例化它:

_randomQuestionNumberArray = [[NSMutableArray alloc] initWithCapacity:2];

我用数字填充这个数组:

for (int i = 0; i < numberOfQuestions; i++) {
    NSNumber* xWrapped = [NSNumber numberWithInt:i];
    [_randomQuestionNumberArray addObject:xWrapped];
}

然后我有另一个NSMutableArray,它只是一个常规的数字数组。我想将此数组添加到特定行的_randomQuestionNumberArray的第二列。我为此使用了此代码,但它似乎无法正常工作。

[_randomQuestionNumberArray insertObject:_tempAnswers atIndex:position];

有人可以为此提供解决方案吗?谢谢!

2 个答案:

答案 0 :(得分:1)

不要使用数组数组。它最初会起作用,但它不灵活或不清晰(很难维护)。

相反,使用字典数组,其中每个字典都有许多键:

_randomQuestionNumberArray = [NSMutableArray array];

for (int i = 0; i < numberOfQuestions; i++) {
    [_randomQuestionNumberArray addObject:[@{ @"questionNumber" : @(i) } mutableCopy]];
}

然后,当你得到答案时:

NSMutableDictionary *questionDict = [_randomQuestionNumberArray objectAtIndex:...];
[questionDict setObject:_tempAnswers forKey:@"answers"];

现在显而易见的是每条信息的用途。

注意:如果你想要它,那么数组中每个项目的索引可以作为问题编号...

答案 1 :(得分:0)

尝试使用此: - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

代替anObject放置数组。