我想将参数传递给服务器,参数在一个数组中 参数1(2,3,5,7,9,16,25)我想通过
@"tags[]" : @"2"
@"tags[]" : @"4"
.........
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject: userId forKey:@"user_id"];
[parameters setObject: userToken forKey:@"token"];
for (i = 0 ; i < parameters1.count ; i++) {
[parameters setObject:[parameters1 objectAtIndex:i]forKey:@"tags[]"];
}
我的输出为
@"user_id" : 2
@"token" : khsskjkjwllwklkllk
@"tags[]" : 25
这里我想传递所有标签,但我只获得最后一个价值
我想从参数Dictonary中添加标签。
答案 0 :(得分:0)
字典只能包含每个键一个值,所以:
[parameters setObject:[parameters1 objectAtIndex:i]forKey:@"tags[]"];
始终将parameters1[i]
设置为@"tags[]"
的<字符串)值。
也许您打算使用数组作为该键的值?我不能说,但如果是这样的话:
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
parameters[@"user_id"] = userId;
parameters[@"token"] = userToken;
parameters[@"tags[]"] = parameters1;
答案 1 :(得分:0)
您可以直接为“tag []”添加参数数组1。
答案 2 :(得分:0)
我刚编辑了你的代码,
NSMutableArray *parameters1 = [[NSMutableArray alloc] initWithObjects:@"2",@"3",@"5",@"7",@"9",@"16",@"25", nil];
NSMutableDictionary *parameters= [NSMutableDictionary dictionary];
NSMutableDictionary *parameters2 = [NSMutableDictionary dictionary];
for (int i = 0 ; i < parameters1.count ; i++) {
NSMutableDictionary *parametersTag = [NSMutableDictionary dictionary];
[parametersTag setObject:[parameters1 objectAtIndex:i]forKey:@"tags[]"];
[parameters1 replaceObjectAtIndex:i withObject:parametersTag];
}
[parameters setObject: @"111" forKey:@"user_id"];
[parameters1 addObject:parameters];
[parameters2 setObject: @"dhfjkhds" forKey:@"token"];
[parameters1 addObject:parameters2];
NSLog(@"arr : %@",parameters1);
它将生成如下输出,
(
{
"tags[]" = 2;
},
{
"tags[]" = 3;
},
{
"tags[]" = 5;
},
{
"tags[]" = 7;
},
{
"tags[]" = 9;
},
{
"tags[]" = 16;
},
{
"tags[]" = 25;
},
{
"user_id" = 111;
},
{
token = dhfjkhds;
}
)
答案 3 :(得分:0)
由于NSDictionary
每个键只能包含一个值,因此您必须将键与任何额外的数字或字符区分开来。
这里使用的是可以保存最后设定值的关键标签[]。
我已经通过一个小的更改来更新您的代码,这些更改可以更改您的密钥并保留每个值
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject: userId forKey:@"user_id"];
[parameters setObject: userToken forKey:@"token"];
for (i = 0 ; i < parameters1.count ; i++) {
[parameters setObject:[parameters1 objectAtIndex:i] forKey:[NSString stringWithFormat@"tags[%d]",i]];
}
您的输出将为
@"user_id" : 2
@"token" : khsskjkjwllwklkllk
@"tags[0]" : 2
@"tags[1]" : 3
@"tags[2]" : 5
@"tags[3]" : 7
@"tags[4]" : 9
@"tags[5]" : 16
@"tags[6]" : 25
我希望你理解答案。