无法从字典中检索数据

Unable to retrieve the data from Dictionary

在我的项目中,我收到来自服务器的响应,格式为

response:  

     <JKArray 0x7fa2e09036b0>(
        {
            id = 23;
            name = "Name1";    
        },
        {
            id = 24;
            name = "Name2";   
        }

    )

我从这个响应数组中检索不同索引处的对象,然后将它们添加到 mutableArray 中,然后添加到 contactsDictionary 中。

  self.contactsDictionary = [[NSMutableDictionary alloc] init];    

            for(int i=0 ; i < [response count] ; i++)
            {
                NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
                [mutableArray addObject:[response objectAtIndex:i]];

                [self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];

            }

我想从项目中其他位置的 contactsDictionary 中检索键 @"name" 的数据。那么怎么做呢。 提前致谢....

这是错误的方式,就像您设置 contactsDictionary 一样。

替换下行

[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];

[self.contactsDictionary setObject:[mutableArray objectAtIndex :i] forKey:[NSString stringWithFormat:@"%i",i]];

因为每次你的数组都有新对象,所以你的联系人字典的第一个值有一个对象,然后第二个值有两个对象。所以你不应该那样做。

现在,如果你想检索 name 然后调用 like

 NSString *name = [[self.contactsDictionary objectForKey : @"1"]valueForKey : @"name"];

避免语法错误,因为在这里输入了 ans。

根据评论更新:

只取一个可变数组作为示例,

 NSMutableArray *arr = [[NSMutableArray alloc]init];
 [arr addObject : name];  //add name string like this

希望这会有所帮助:)

Aloha 从你的回复中我可以根据你的回复给你这样的 Belo 回答。

for(int i=0;i<[arrRes count];i++);
{
   NSString *strId = [NSString stringWithFormat:@"%@",[[arrRes obectAtIndex:i]objectForKey:@"id"]];
   NSString *StrName = [NSString stringWithFormat:@"%@",[[arrRes objectAtIndex:i]objectForKey:@"name"]];

   NSLog(@"The ID is -%@",strId);
   NSLog(@"The NAME is - %@",strName);

  }