NSDictionary添加多个键

时间:2013-06-13 07:56:02

标签: ios objective-c xcode nsmutabledictionary

我可以知道NSDictionaryNSMutableDictionary是否可以为不同的对象添加多个相同的密钥?这是因为开发人员编写的API正在接受一个数组。

e.g:

NSArray *ids = @[@"xxx", @"yyy", @"zzz"];

NSMutableDictionary *args = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"someobject", @"somekey"];

我已经定义了一个由用户选择的args和一组id,现在我将循环该数组。

for( NSString *getId in ids ){

    [args setObject:getId forKey:@"ids[]"];
}

结束了,结果出来了

"somekey" = "someobject", "ids[]" = "zzz";

我可以获得如下结果吗?

"somekey" = "someobject", "ids[]" = "xxx", "ids[]" = "yyy", "ids[]" = "zzz";

请指教,谢谢!

4 个答案:

答案 0 :(得分:4)

是的可能

NSArray *arr = [[NSArray alloc]initWithObjects:@"xxx",@"yyy",@"zzz", nil];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Someobject", @"Somekey", nil];
for (int i = 0; i<[arr count]; i++) {
   [dic setValue:[arr objectAtIndex:i] forKey:[NSString stringWithFormat:@"id[%d]", i]];
}
NSLog(@"dic %@",dic);

使用此代码确定它会对您有所帮助。

答案 1 :(得分:1)

不,钥匙是独一无二的。但是您可以在NSMutableArray中添加NSDictionary,并存储key => array(x,y,...)

等值

答案 2 :(得分:0)

而不是你可以像这样创建词典。

YourDictionary = {

"somekey" = "someobject", 

"ids[]" = (
"xxx", 
"yyy", 
"zzz"
)

}

ids[]视为数组

希望这能解决您的问题

答案 3 :(得分:0)

不,这不是字典的使用方式。正如peko所说,只需将你的数组放入dict:

[args setObject:ids forKey:@"ids"];