【问题标题】:NSDictionary adding multiple keysNSDictionary 添加多个键
【发布时间】:2013-06-13 07:56:02
【问题描述】:

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

例如:

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

请指教,谢谢!

【问题讨论】:

  • 顺便说一句,对于第一个定义的 args 变量,最后应该有我错过的“,nil”。

标签: ios objective-c xcode nsmutabledictionary


【解决方案1】:

是的,有可能

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

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

【讨论】:

    【解决方案2】:

    不,密钥是唯一的。但是您可以在您的NSDictionary 中添加一个NSMutableArray,并存储您的值,例如key =&gt; array(x,y,...)

    【讨论】:

    • 您在“no”和“key”之间缺少一个逗号。
    【解决方案3】:

    您可以像这样创建字典。

    YourDictionary = {
    
    "somekey" = "someobject", 
    
    "ids[]" = (
    "xxx", 
    "yyy", 
    "zzz"
    )
    
    }
    

    ids[] 视为一个数组

    希望这能解决您的问题

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        • 1970-01-01
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多