在afnetworking post方法中发送数组值

时间:2016-05-28 06:46:30

标签: ios objective-c arrays afnetworking

以此格式[@"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

所以只有最后一个值可以引导我进入正确的方向

3 个答案:

答案 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。