在nsmutable字典中插入数组中的几个对象

我有一个数组的30个图像,我只想添加15个图像到nsmutable字典,哪些是随机添加

我正在使用下面的代码

for (m = 0; m < 20; m++) { rnd = arc4random_uniform(FrontsCards.count); dic=[[NSMutableDictionary alloc]init]; [dic setObject:[NSNumber numberWithInt:rnd] forKey:@"Images"]; NSLog(@"%@",dic); } 

这里的问题是,对于m = 0条目进入字典,对于m = 1再次一个条目进入字典replace第一个和最后我只得到最后一个值所需的输出是所有20个值可以有人帮助我..
提前致谢…

您正在为您设置的每个号码使用相同的标签“ 图像 ”。 因此它被一次又一次地取代

  dic=[[NSMutableDictionary alloc]init]; for (m = 0; m < 20; m++) { rnd = arc4random_uniform(FrontsCards.count); [dic setObject:[NSNumber numberWithInt:rnd] forKey:[NSString stringWithFormat:@"Images_%d",rnd]; } NSLog(@"%@",[dic description]); 

在这种情况下,您需要使用NSMutableArray,因为您一次又一次地使用相同的键,所以最后的值将被新的值replace。 所以有2个选项

1)首先为每个图像使用不同的密钥。

2)你可以使用NSMutableArry来添加新的对象。

我在你的代码中发现了很多问题:
1.你要添加15张图片,但是要设置20的循环;
2.你正在创build字典在循环,所以它会创build20次。 每次创build新的字典,旧的字典被删除。
你使用相同的密钥来存储所有的值。 您必须为每个项目使用唯一的密钥。 其他明智的旧itel被取代

像这样使用

 dic=[[NSMutableDictionary alloc]init]; for (m = 0; m < 15; m++) { rnd = arc4random_uniform(FrontsCards.count); [dic setObject:[NSNumber numberWithInt:rnd] forKey:[NSString stringWithFormat@"Image%d",rnd]]; } NSLog(@"%@",dic); 

你正在分配新的词典evrytime。 所以它被覆盖。 尝试这个。 也正如mayur所说,你不能使用同样的密钥。

 dic=[[NSMutableDictionary alloc]init]; for (m = 0; m < 20; m++) { rnd = arc4random_uniform(FrontsCards.count); [dic setObject:[NSNumber numberWithInt:rnd] forKey:[NSString stringWithFormat:@"Images_%d",rnd]]; } NSLog(@"%@",dic); 

您无法使用相同的键input多个对象或图像…此处的键被设置为图像。 因此,名为图像的键的值将被一次又一次地设置…要么在每种情况下为键指定不同的名称,要么使用数组来存储所有图像。

还要在for循环之外声明字典。 尝试下面的代码。

 dic=[[NSMutableDictionary alloc]init]; for (m = 0; m < 20; m++) { rnd = arc4random_uniform(FrontsCards.count); [dic setObject:[NSNumber numberWithInt:rnd] forKey:@"Images_%d", m]; NSLog(@"%@",dic); } 

以上答案是正确的您按照此代码并解决您的问题。