以此格式[@"language":@"English",@"language":@"Tamil"]
试过这个
NSArray *test=@[@"English",@"Tamil"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
NSInteger noselectedlangu= [test count];
int i;
for(i=0;i<noselectedlangu;i++)
{
[dict setObject:test[i] forKey:@"language"];
}
NSLog(@"params : %@", dict);
结果:language=Tamil
所以只有最后一个值可以引导我进入正确的方向
答案 0 :(得分:1)
它的发生是因为字典只存储一个键的一个值。如果您要使用相同的密钥保存另一个值,则它将替换您在字典上设置的最后一个值。
示例:强>
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"Hindi" forKey:@"language"];
NSLog(@"Dic Value %@", dict);
输出:印地语
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"Hindi" forKey:@"language"];
[dict setObject:@"English" forKey:@"language"];
NSLog(@"Dic Value %@", dict);
输出:英文
你可以看到印地语被英语取代,因为我们使用相同的键。
希望你现在能够很好地理解它。
你可以这样存储
for(i=0;i<noselectedlangu;i++)
{
NSString *key = [NSString stringWithFormat:@"language%d",i];
[dict setObject:test[i] forKey:key];
}
NSLog(@"Dinctionary %@",dict);
答案 1 :(得分:0)
如果你想要这个输出然后在下面使用它可能有帮助,但你必须使用数组
访问它NSArray *test=@[@"English",@"Tamil"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
NSMutableArray *arr = [[NSMutableArray alloc]init];
NSInteger noselectedlangu= [test count];
int i;
for(i=0;i<noselectedlangu;i++)
{
NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
[dic setObject:test[i] forKey:@"language"];
[arr insertObject:dic atIndex:0];
[dict setObject:arr forKey:@"languages"];
}
NSLog(@"params : %@", dict);
答案 2 :(得分:0)
试试这个, 在我的应用程序中像这样传递数组中的数据
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"English" forKey:@"language[0]"];
[dict setObject:@"Hindi" forKey:@"language[1]"];
在参数中传递dict。