2

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

例如:

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

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

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

for( NSString *getId in ids ){

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

所以结束了,结果出来是

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

我有可能得到如下结果吗?

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

请指教,谢谢!

4

4 回答 4

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);

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

于 2013-06-13T08:02:21.773 回答
1

不,密钥是唯一的。但是你可以NSMutableArray在你的NSDictionary, 并存储你的值,比如key => array(x,y,...)

于 2013-06-13T08:00:30.583 回答
0

取而代之的是,您可以像这样创建字典。

YourDictionary = {

"somekey" = "someobject", 

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

}

视为ids[]数组

希望这能解决你的问题

于 2013-06-13T08:02:15.653 回答
0

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

[args setObject:ids forKey:@"ids"];
于 2013-06-13T08:03:53.220 回答