Objective c 将一个值与随机生成的另一个值关联

Objective c 将一个值与随机生成的另一个值关联,objective-c,nsmutablearray,Objective C,Nsmutablearray,以下是我想要做的: 我有一系列随机为用户生成的调查问题 我想要的是将两个值相互关联,一个是随机生成的问题编号的整数值,另一个是表示此用户回答此问题的次数的整数值。我希望以后能够保存和检索这些关联的值,以便增加用户回答此问题的次数 那么,如何将两个不同的整数值相互关联、保存并在以后更新它们呢 我从这个代码开始 QuestionSelected = arc4random_uniform(4); 例如,一旦产生该结果: 所选问题=1 我需要建立一个新的值,我可以将它与该问题的值(1)关联,增加它,然

以下是我想要做的:

我有一系列随机为用户生成的调查问题

我想要的是将两个值相互关联,一个是随机生成的问题编号的整数值,另一个是表示此用户回答此问题的次数的整数值。我希望以后能够保存和检索这些关联的值,以便增加用户回答此问题的次数

那么,如何将两个不同的整数值相互关联、保存并在以后更新它们呢

我从这个代码开始

QuestionSelected = arc4random_uniform(4);
例如,一旦产生该结果:

所选问题=1

我需要建立一个新的值,我可以将它与该问题的值(1)关联,增加它,然后在用户每次返回该问题时保存它


谢谢你的帮助

一个值与另一个值的关联是一个“映射”
NSDictionary
是Cocoa中的标准映射集合,因此您可以使用它:

NSNumber * timesSeen = myMutableDictionary[@(selectedQuestion)];
if( !timesSeen ){
    timesSeen = @(0);
}
myMutableDictionary[@(selectedQuestion)] = @([timesSeen intValue] + 1);
由于数组本质上将其索引(即数字)与值相关联,因此另一种选择是使用
NSMutableArray

NSNumber * timesSeen = myMutableArray[selectedQuestion];
myMutableArray[selectedQuestion] = @([timesSeen intValue] + 1);
NSArray
不能稀疏,因此在创建它时必须用零填充它:

for( NSUInteger i = 0; i < numQuestions; i++ ){
    [myMutableArray addObject:@(0)];
}

calloc()
为您获取一块内存并用零填充它。处理完数组后,您需要通过调用
free(viewCounts)
释放内存。

您可以使用
NSMutableDictionary
并保存键值,其中
QuestionSelected
将是键,
numberofthreads
将是值,每次发现相同的问题时,更新其
尝试次数
。快乐编码:)这些都是很好的信息,对我很有帮助。非常感谢。好的,让我知道我是否在正确的轨道上。问题的数量总是会改变,因为我允许我的用户提交他们自己的问题。我无法在NSMutableDictionary中设置已定义的键数。因此,我需要做的是首先检查所选问题当前是否有已定义的键,如果没有,则添加它。对吗?
int * viewCounts;

viewCounts = calloc(numQuestions, sizeof(int));

viewCounts[selectedQuestion]++;