0

我在我的一个应用程序中遇到了麻烦。我有 36 个图像和 36 个声音和 36 个文本,所有名称都相同现在我想声明这一切的数组意味着图像数组文本数组和声音数组,现在随机希望在按钮标签和上显示 9 个图像相同的第 9 页声音与文本一一播放并识别该图像。

所以在这里我声明图像数组和文本数组我也完成了 arc4random 并获取图像,但现在的问题是我如何在这里使用字典,以便我可以将数据存储在这个字典中,所以我怎么能做到这一点请帮助我 ontis .

4

3 回答 3

1

您应该创建一个字典对象数组,每个字典对象包含一个图像、一个声音和一个文本对象(同名对象)。所以数组将包含 36 个字典对象,每个字典对象将包含 3 个对象。

NSMutableArray *combinedArray = [[NSMutableArray alloc] init];
for(i=0;i<36;i++) {
    NSDictionary *dict = [[NSDictionary dictionaryWithObjectsAndKeys:[imageArray objectAtIndex:i], @"image", [textArray objectAtIndex:i], @"text", [soundArray objectAtIndex:i], @"sound", nil]];
    [combinedArray addObject:dict];
}

现在您可以在 combineArray 上使用 arc4Random,您将在所选随机索引处拥有所有 3 个对应对象。希望这可以帮助

于 2013-01-29T05:38:49.830 回答
0

如果要将数组存储到字典中,请编写以下代码。您要做的是创建 3 个不同的数组,然后创建 for 循环。

          for(int i=0;i<some value:i++)
          {
            dictMut=[[NSMutableDictionary alloc]init];
            [dictMut setObject:[dataArrayA objectAtIndex:w] forKey:@"A"];
            [dictMut setObject:[dataArrayB objectAtIndex:w] forKey:@"B"];
            [dictMut setObject:[dataArrayC objectAtIndex:w] forKey:@"C"];
          }

让我知道它是否有效!

快乐编码!!!!

于 2013-01-29T05:35:29.930 回答
0

好的,我看到了...现在您所做的是创建了 textarray、soundarray 和 imagearray。

现在创建这 3 个数组后,编写如下代码..

        for(int i=0;i<36:i++)
      {
        dictMut=[[NSMutableDictionary alloc]init];
        [dictMut setObject:[textarray objectAtIndex:w] forKey:@"A"];
        [dictMut setObject:[soundarray objectAtIndex:w] forKey:@"B"];
        [dictMut setObject:[imagearray objectAtIndex:w] forKey:@"C"];
      }

并且您的数组值将存储在字典中。

让我知道它是否有效!!!!

快乐编码!!!!

于 2013-01-29T09:32:12.707 回答